gpt4 book ai didi

c++ - 插入新键时会更改现有键值的地址吗?

转载 作者:行者123 更新时间:2023-12-01 22:04:12 25 4
gpt4 key购买 nike

在我的代码中,将在 std::map 中插入或删除,但不会更改现有键的值。插入/删除新键时会更改现有键值的地址吗?

int main()
{

std::map<int,int> m;
for(int i(0);i<100000;i++){
m[i];
std::cout<< &m[0]<<std::endl;
}

return 0;
}

结果总是一样的...所以它不会对旧 key 产生影响?顺便问一下,unordered_map 怎么样?

最佳答案

插入或删除其他元素时,现有元素的地址不会更改。换句话说,除非删除该特定元素,否则对元素的引用不会失效。

这对于所有基于节点的容器都是如此,其中包括关联容器(映射、集合、无序变体、它们的多个变体)和链接列表。对于基于数组的双端队列、 vector 或字符串来说,情况并非如此。

无序关联容器的迭代器在插入时可能会因重新散列而失效;这不会影响地址。

关于c++ - 插入新键时会更改现有键值的地址吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61771352/

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