map<vector<int>,int> > mymap
我想知道如果 mymap 不做任何事情,地图中项目的顺序是否可以更改。也就是说,假设地图有 3 对,我称之为 1 2 3,当我进入地图时,输入以下代码:
for(auto i = mymap.begin();i!=mymap.end();i++)
{
cout<<i->first<<endl; //operator<< is redefenid
}
元素按以下顺序返回:3 2 1稍后不使用上面的相同代码对地图进行任何更改,我可以保证以与以前相同的顺序访问元素(即 3 2 1)?(我使用 C++11)
然后你需要 std::unordered_map
在std::map<Key, Value, Comparer>
中,元素根据Key
和Comparer
排序。 对于 2 个给定的键,Comparer
仍然应该给出相同的结果,并且不应该修改键(从Comparer
的角度来看)。
因此,如果您迭代一次并具有key1 < key2 < key3
那么即使在添加/删除之后,您仍然有这些相对顺序:key1 < keyA < key2 < keyB < key3
或者如果您只删除key2
:key1 < key3
.