map是使用红黑树实现,unordered_map是使用hash表来完成映射功能。 map是按照operator<比较判断元素是否相同,及比较元素的大小,然后选择一个合适位置插入其中,所以对map遍历的话是有序的。 unordered_map是计算元素的hash值,根据hash的值判断元素是否相同,所以对unordered_map遍历是无序的。
map、set、multimap、multiset 上述四种容器采用红黑树实现,红黑树是平衡二叉树的一种。不同操作的时间复杂度近似为: 插入: O(logN) 查看: O(logN) 删除: O(logN) 5. unordered_map、unordered_set、unordered_multimap、 unordered_multiset 上述四种容器采用哈希表实现,不同操作的时间复杂度为: 插入: O(1),...
(5)map/multimap:键值对,每一个元素都是pair,pair的第一个元素是关键字,第二个元素是值。这两者的区别就在于multimap可以存放多个相同的关键字,map则不可以。 (3)与(5)的底层实现都是红黑树,动态平衡二叉树。插入和删除等操作的时间复杂度是O(logn)(6)中的底层实现是哈希函数。 (6)unordered_map映射 unorde...
30、vector迭代器失效的情况 31、map与unordered_map对比 32、set与unordered_set对比 33、STL容器空间配...
(几乎所有面试都问了map和unordered_map区别) 36.inline 失效场景 37.C++ 中 struct 和 class 区别 1.C++中struct和class的区别 1.1 默认权限不同 1.2是否能定义模板参数 2.C++的struct和C的struct区别 38.如何防止一个头文件 include 多次 39.lambda表达式的理解,它可以捕获哪些类型 1.lambda表达式 2.捕获列表...
map是STL中的一个关联容器,提供键值对的数据管理。底层通过红黑树来实现,实际上是二叉排序树和非严格意义上的二叉平衡树。所以在map内部所有的数据都是有序的,且map的查询、插入、删除操作的时间复杂度都是O(logN)。 unordered_map和map类似,都是存储key-value对,可以通过key快速索引到value,不同的是unordered_map...
31、map与unordered_map对比 32、set与unordered_set对比 33、STL容器空间配置器 参考书籍:《C++ Primer...
unordered_map<int,int> mp; for(inti =0;i-1; i){ mp[array[i]]; } for(inti =0;i-1; i){ if(mp[array[i]] > length /2){ returnarray[i]; } } return-1;//没有的话返回-1 //加入数据很大怎么办?——先排序 sort(array);//sort的原理是什么 ...
STL中map与unordered_map有什么区别? vector和list的区别是什么? STL中迭代器有什么作用?有指针为何还要迭代器? epoll的原理是什么? STL中MAP数据如何存放的? STL里resize和reserve的区别是什么? 类和数据抽象 C++中类成员的访问权限? C++中struct和class的区别是什么?
map是STL中的一个关联容器,提供键值对的数据管理。底层通过红黑树来实现,实际上是二叉排序树和非严格意义上的二叉平衡树。所以在map内部所有的数据都是有序的,且map的查询、插入、删除操作的时间复杂度都是O(logN)。 unordered_map和map类似,都是存储key-value对,可以通过key快速索引到value,不同的是unordered_map...