以下安全吗?
unordered_map<string, string> my_map;
unordered_map<string, double> new_map;
for(auto&& [key, value] : my_map) {
new_map.insert({std::move(key), std::stod(value)});
}
循环后我没有使用my_map
,可以在遍历key
的同时从{{1}}移走吗?
答案 0 :(得分:5)
是,不是。
否,因为它无法满足您的预期。 unordered_map
的密钥是const限定的。无法将其移出。
是的,因为代码是安全的并且可以编译。密钥只需复制即可。
对于所有有序和无序关联容器,包括map
,set
,unordered_multiset
等,都是相同的。