gpt4 book ai didi

c++ - 为什么 std::map 需要一对?

转载 作者:搜寻专家 更新时间:2023-10-31 01:33:23 24 4
gpt4 key购买 nike

语法为:

std::map<int, int> m;
m.insert(std::make_pair(1, 42));

看起来有点疯狂。

为什么没有替代的 insert(K k, V v) 方法可以提供更明智的方法:

std::map<int, int> m;
m.insert(1, 42);

是的,我知道 m[1] = 42,但它有自己的问题(创建值对象的额外拷贝)。

最佳答案

我无法告诉您为什么不允许使用该结构。也许是为了让 insert 与其他容器的 insert 方法相似。但是,从 c++11 开始,有 map::emplace那就是你想要的。

std::map<int, int> m;
m.emplace(1, 42);

关于c++ - 为什么 std::map 需要一对?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41514155/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com