相关疑难解决方法(0)

一个跟踪插入顺序的std :: map?

我目前有一个std::map<std::string,int>存储整数值到唯一字符串标识符,我确实查找字符串.它主要是我想要的,除了它不跟踪插入顺序.因此,当我迭代地图以打印出值时,它们将根据字符串进行排序; 但是我希望它们按照(第一次)插入的顺序排序.

我想过使用一个vector<pair<string,int>>替代,但我需要查找字符串并将整数值增加大约10,000,000次,所以我不知道是否std::vector会明显变慢.

有没有办法使用std::map或是否有std更适合我需要的容器?

[我在GCC 3.4上,我的价值可能不超过50对std::map].

谢谢.

c++ dictionary std insertion-order

98
推荐指数
5
解决办法
7万
查看次数

什么是暂时*排序矢量的好方法?

我有一个std :: vector,我需要通过选定的算法对某些操作进行排序,但是在剩下的时间内保持其原始状态(例如,在输入时排序的项目).

显然我可以使用std :: copy来创建一个临时向量并对其进行排序,但我想知道是否有更好的方法,可能是通过时间戳输入的项目.

干杯

c++ sorting vector temporary

11
推荐指数
2
解决办法
3561
查看次数

在插入新密钥时保持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++ ×3

c++11 ×1

dictionary ×1

insertion-order ×1

sorting ×1

std ×1

temporary ×1

vector ×1