gpt4 book ai didi

c++ - 删除 std::tr1::unordered_map 中的元素

转载 作者:太空狗 更新时间:2023-10-29 19:59:32 24 4
gpt4 key购买 nike

我们可以使用前向迭代来删除 unordered_map 中的元素吗?

unordered_map<string, int> employeeTable;
unordered_map<string, int>::iterator it;

for (it = employeeTable.begin(); it != employeeTable.end();) {
int age = it->second;
if (age < 18) {
employeeTable.erase(it++);
} else {
++it;
}
}

如果以上不正确,标准建议是什么?像下面这样的东西

it = employeeTable.erase(it);

最佳答案

根据 6.3.1 [tr.unord.req] 第 12 段:

... The erase members shall invalidate only iterators and references to the erased elements.

即上面的代码应该没问题。

关于c++ - 删除 std::tr1::unordered_map 中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12681780/

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