0

在以下示例中,是否有任何正当理由为什么人们更喜欢一对而不是另一对而不是第三个而不是第四个?

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));
4

2 回答 2

1

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

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

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

我只想问,谁愿意写这样的代码?通常,我会写test.insert(std::make_pair(3, 9)),不会在意。

于 2012-04-23T10:13:29.590 回答
0

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

于 2012-04-23T10:15:23.880 回答