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.' 语句未编译。
这两种说法有什么区别?
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.' 语句未编译。
这两种说法有什么区别?
看一下插入功能,您应该使用一对插入:
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 引用。