在地图和常量中插入一对?

时间:2012-04-23 10:05:06

标签: c++ containers

在下面的示例中,有没有正当理由为什么人们会比另一对更喜欢第三对而超过第四对呢?

map<const int, int> test;

test.insert(const pair<const int, int>(3, 9));
test.insert(const pair<int, int>(3, 9));
test.insert(pair<int, int>(3, 9));
test.insert(pair<const int, int>(5, 9));

2 个答案:

答案 0 :(得分:1)

基本上是的。一个哑编译器将在此代码中调用一个额外的转换构造函数

test.insert(pair<const int, int>(5, 9));

但优化编译器会使其与其他替代方案相同。

我只想问,谁会想写这样的代码?通常情况下,我会写test.insert(std::make_pair(3, 9))而不关心。

答案 1 :(得分:0)

插入地图时,最后2对没有区别。默认情况下,map中的键是const,只需使用make_pair函数