std::move(key) 同时迭代unordered_map<字符串,字符串>?
std::move(key) while iterating over unordered_map<string, string>?
以下方法安全吗?
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
移动?
是和否。
不,因为它没有按照您的意图执行。unordered_map
的密钥是恒常合格的。它无法从中移动。
是的,因为代码是安全的并且可以编译。密钥只是简单地复制。
这对所有有序和无序关联容器都是相同的,包括map
、set
、unordered_multiset
等。
相关文章:
- 视觉C++使用 map 来比较字符串中的每个单词
- 如何创建一个模板化函数,可以在任何具有字符串键的 std::map 上运行?
- Map中的(字符串的)向量迭代器
- 计算表达式字符串由 std::map 中的键组成
- 使用 pair<int、int> 或字符串作为 map<> 键,哪个更有效?
- 将字符指针按顺序存储在 map 中 std::map<char*, int> mymap。将其存储为字符或字符串不是一个选项
- "map"容器C++是否对字符串的连续子字符串应用 Rabin-Karp 算法?
- 检查字符串是否使用STD :: MAP包含重复
- std::map与字符串或结构键
- 罗马数字基本算法中基于字符串的错误(使用std::map)
- 使用 map<string,int> 在开关大小写语句中使用字符串
- 为什么此代码使用带有字符串(C )的MAP具有运行时错误
- C 多维字符串数组初始化(STD :: MAP)
- std::map与字符串键和自定义值字段
- std::map设计:使用std::字符串作为map键和存储的对象名称(成员)
- map<vector<string>,字符串>给我一个错误
- C++:使用 map 对文本文件中出现的字符串值进行排序和打印
- 使用 map<const 字符串、函数<?(?)>> 命令解析命令;
- 在std::map中排序,其中key是std::字符串
- 在 c++ 中的 map< 字符串、<vector > 中查找矢量中的值<string>