网站建设色彩搭配,什么广告推广最有效果,北京网络营销推广,杭州品牌设计公司有哪些最近做一个项目遇到一个问题困扰我两天,差点自闭。经排查是 插入到unordered_map中的键值对的顺序和实际的键值对存在的顺序没有关系
众所周知,unordered_map插入元素后,键值不会自动排序,但是顺序却不一定和插入顺序一致。msvc和gcc编译器也各不相同。 std::unordered_mapchar, inttest;test[A] 3;test[C] 0;test[B] 1;test[D] 1;for (const auto item : test){std::cout item.first item.second;}
msvc编译器打印结果:
A 3
C 0
B 1
D 1
gcc打印结果:
D 1
B 1
A 3
C 0
如果我们假设和插入顺序一致就会导致问题。unorder_map是哈希表结构,可能每个编译器的实现都不相同。