kay*_*yle 1 c++ merge dictionary stl unordered-map
我需要在unordered_map
不改变顺序的情况下合并两个s.例如,
unordered_map<int,int> map1 ,map2, map3;
Run Code Online (Sandbox Code Playgroud)
map1包含:<4,4> <2,2>
map2包含:<3,3> <1,1>
map1和map2将与map3合并.
所以我的map3应该包含<4,4> <2,2> <3,3> <1,1>
map<int,int>::iterator it = map3.begin();
std::merge(map1.begin(),map1.end(),map2.begin(),map2.end(),inserter(map3,it));
Run Code Online (Sandbox Code Playgroud)
仍然map3订单正在改变.我试过std :: merge和insert,但没有按照上面的要求工作.有人可以帮我这个.或者我在合并和插入时犯了一些错误?
小智 5
std::unordered_map
不保证任何类型的订单,而std::map
始终按键排序(尽管您可以指定自己的比较功能).看起来您想要按照插入顺序排列项目.在这种情况下,您可以将数据推送到a std::vector
,尽管您必须放弃映射类型提供的子线性操作.
归档时间: |
|
查看次数: |
600 次 |
最近记录: |