c++中map是有序的吗

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++中map是有序的吗相关的知识,希望对你有一定的参考价值。

是的,无论是map还是multimap都是有序的,会按键排序。

区别是map的键不能重复,而multimap的键可以重复。

下面图中有两个例子供参考:

参考技术A Map是无序的,它的存储结构是哈希表<key,value>键值对,map中插入元素是根据key计算出的哈希值来存储元素的,因此他不是按照元素的添加顺序来存储对象的,所以Map是无序的。它的实现类有:HashMap、TableMap和TreeMap。

其中LinkedHashMap是有序的,hashMap用来保证存储的值键值对,list用来保证插入的顺序和存储的顺序一致。
参考技术B 有序的,一般说有序无序都是判断是否符合ascii码顺序,如符合,则认为有序 参考技术C 所以,这里的排序是指:不改变插入的顺序 还是 插入后排序呢?

以上是关于c++中map是有序的吗的主要内容,如果未能解决你的问题,请参考以下文章

无序map 记录一下

PHP 关联数组是有序的吗?

Python中的字典到底是有序的吗

Redshift 系统表是不可变且有序的吗?

List是有序的Set是无序的吗? List和Set对比

C++ AVL树