Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/134.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ std::map';这是命令_C++_Std - Fatal编程技术网

C++ std::map';这是命令

C++ std::map';这是命令,c++,std,C++,Std,我试图理解std::map中的顺序 在内部,映射中的元素总是按照其内部比较对象(类型为Compare)指示的特定严格弱排序标准,按其键进行排序。 如果我这样做: myMap["two"] = 2; myMap["three"] = 3; myMap["one"] = 1; 然后迭代myMap,在运行时打印出值,输出结果是什么 我正在寻找一个容器,其中的元素按添加顺序排列。在这种情况下,我希望迭代的输出是2,3,1 向量/FIFO队列只需执行您想要的操作,而无需担心map如何

我试图理解std::map中的顺序

在内部,映射中的元素总是按照其内部比较对象(类型为Compare)指示的特定严格弱排序标准,按其键进行排序。

如果我这样做:

   myMap["two"] = 2;
   myMap["three"] = 3;
   myMap["one"] = 1;
然后迭代
myMap
,在运行时打印出值,输出结果是什么


我正在寻找一个容器,其中的元素按添加顺序排列。在这种情况下,我希望迭代的输出是2,3,1

向量/FIFO队列只需执行您想要的操作,而无需担心map如何在内部存储对象,也无需担心代码中的数据结构过于复杂


std::queue是一个FIFO队列

示例中的顺序取决于
std::map
的定义。请注意,这是一个具有四个模板参数的模板:

std::map< Key, Value, Compare, Allocator >
std::map

其中第三个对订单很重要。假设您有
std::map
,那么第三个参数
Compare
的默认值是
std::less
,即
std::less
,这反过来意味着键(类型为
std::string
)与
相比,您要查找的可能是
对的
向量
sWell no
std::map
保持元素按键排序(在您的示例中是
字符串
字典排序),以允许按键进行快速(对数)时间访问。它不保留插入顺序。这可能会回答您的问题:“如果我这样做,然后在myMap上迭代,一边打印出值,输出结果会是什么?”--您是否考虑过尝试一下,看看会发生什么?最糟糕的情况是什么?@Antoine你不能对无序集的迭代顺序做出任何假设。