1
map<pair<double,double>,double> vectorDoubleMap;

vectorDoubleMap[ pair<double, double>(10, 10) ] = 1;          //1.
vectorDoubleMap.insert( pair<double, double>(10, 10), 1);     //2.

“1。” 语句编译完成,但 '2.' 语句未编译。

这两种说法有什么区别?

4

2 回答 2

1
于 2012-09-13T22:29:23.717 回答
0

看一下插入功能,您应该使用一对插入:

vectorDoubleMap.insert( pair<pair<double,double>,double>(pair<double, double>(10, 10), 1));

或利用 make_pair 函数使代码干净:

vectorDoubleMap.insert( std::make_pair(pair<double, double>(10, 10), 1));

当您遇到编译器错误时,首先要做的是阅读错误消息并检查 api 引用。

于 2012-09-13T22:29:13.593 回答