当前位置: 首页 > 面试题库 >

请你说一说stl里面set和map怎么实现的?

尉迟宇定
2023-03-14
本文向大家介绍请你说一说stl里面set和map怎么实现的?相关面试题,主要包含被问及请你说一说stl里面set和map怎么实现的?时的应答技巧和注意事项,需要的朋友参考一下

集合,所有元素都会根据元素的值自动被排序,且不允许重复。

底层实现:红黑树

set 底层是通过红黑树(RB-tree)来实现的,由于红黑树是一种平衡二叉搜索树,自动排序的效果很不错,所以标准的 STL 的 set 即以 RB-Tree 为底层机制。又由于 set 所开放的各种操作接口,RB-tree 也都提供了,所以几乎所有的 set 操作行为,都只有转调用 RB-tree 的操作行为而已。

适用场景:有序不重复集合

2、map

映射。map 的所有元素都是 pair,同时拥有实值(value)和键值(key)。pair 的第一元素被视为键值,第二元素被视为实值。所有元素都会根据元素的键值自动被排序。不允许键值重复。

底层:红黑树

适用场景:有序键值对不重复映射

 

 类似资料:
  • 本文向大家介绍请你说说STL中map与unordered_map?相关面试题,主要包含被问及请你说说STL中map与unordered_map?时的应答技巧和注意事项,需要的朋友参考一下 1、Map映射,map 的所有元素都是 pair,同时拥有实值(value)和键值(key)。pair 的第一元素被视为键值,第二元素被视为实值。所有元素都会根据元素的键值自动被排序。不允许键值重复。 底层实现:

  • 本文向大家介绍请你说一说map和unordered_map的底层实现?相关面试题,主要包含被问及请你说一说map和unordered_map的底层实现?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: map底层是基于红黑树实现的,因此map内部元素排列是有序的。而unordered_map底层则是基于哈希表实现的,因此其元素的排列顺序是杂乱无序的。

  • 本文向大家介绍请你来说一下map和set有什么区别,分别又是怎么实现的?相关面试题,主要包含被问及请你来说一下map和set有什么区别,分别又是怎么实现的?时的应答技巧和注意事项,需要的朋友参考一下 map和set都是C++的关联容器,其底层实现都是红黑树(RB-Tree)。由于 map 和set所开放的各种操作接口,RB-tree 也都提供了,所以几乎所有的 map 和set的操作行为,都只是转

  • 本文向大家介绍请你说一说STL中MAP数据存放形式?相关面试题,主要包含被问及请你说一说STL中MAP数据存放形式?时的应答技巧和注意事项,需要的朋友参考一下 红黑树。unordered map底层结构是哈希表

  • 本文向大家介绍请你说一说C++两种map?相关面试题,主要包含被问及请你说一说C++两种map?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: unordered_map(哈希表)和map(红黑树)

  • 本文向大家介绍请你说一说C++ STL 的内存优化?相关面试题,主要包含被问及请你说一说C++ STL 的内存优化?时的应答技巧和注意事项,需要的朋友参考一下 1)二级配置器结构 STL内存管理使用二级内存配置器。 1、第一级配置器 第一级配置器以malloc(),free(),realloc()等C函数执行实际的内存配置、释放、重新配置等操作,并且能在内存需求不被满足的时候,调用一个指定的函数。