相关疑难解决方法(0)

stl的multimap如何插入尊重排序?

我有一些带有整数索引的数据.我不断生成需要添加到我拥有的数据集合中的新数据,按索引排序,同时我希望能够轻松地开始数据并迭代它.这听起来像std :: multimap正是我需要的.

但是,我还需要按照插入顺序保存具有相同索引的数据,在这种情况下,这意味着当我遍历数据时,我会在之后的数据之前得到早期数据.

multimap会这样做吗?

我没有找到任何保证,这是这种情况.在sgi手册中,我没有看到是否提及.我在gcc 4.3.4实现上尝试了它,对于一些有限的测试用例似乎是正确的,但当然我想知道标准是否要求这个并且我可以依赖这个事实.

编辑:为了更清楚地回答一些答案,我希望数据首先按(非唯一)索引排序,然后按插入时间排序.我原本希望第二部分可以免费使用multimap,但似乎没有.

c++ multimap

17
推荐指数
2
解决办法
1万
查看次数

在插入新密钥时保持unordered_map的顺序

unordered_map用这段代码插入了元素:

    myMap.insert(std::make_pair("A", 10));
    myMap.insert(std::make_pair("B", 11));
    myMap.insert(std::make_pair("C", 12));
    myMap.insert(std::make_pair("D", 13));
Run Code Online (Sandbox Code Playgroud)

但是当我用这个命令来打印键时

for (const auto i : myMap)
{
    cout  << i.first << std::endl;
}
Run Code Online (Sandbox Code Playgroud)

它们与插入它们的顺序不同.

是否可以保留订单?

c++ c++11

9
推荐指数
2
解决办法
7249
查看次数

标签 统计

c++ ×2

c++11 ×1

multimap ×1