你有没有在项目中深入使用过std::set或std::map进行复杂数据结构设计?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1555个文字,预计阅读时间需要7分钟。
某日二师兄参加XXX科技有限公司的C++工程师开发岗位面试第27面:面试官:用过std::set或std::map吗?二师兄:用过。面试官:能介绍一下二者的区别吗?面试官:能否介绍一下二者有什么应用场景?二师兄:std::set是一个有序集合,其中的元素是唯一的。
某日二师兄参加XXX科技公司的C++工程师开发岗位第27面:
面试官:用过
std::set/std::map吗?二师兄:用过。
面试官:能介绍一下二者吗?
二师兄:
std::set是一个有序的集合,其中的元素是唯一的,即每个元素只能出现一次。一般用于去重和自动排序。二师兄:
std::map同样是有序组合,只不过它不止有key,每个key还对用一个value。其中key是唯一,不可重复,但是value却没有限制。key/value也被称为键值对。面试官:知道他们底层使用什么数据结构存储数据的吗?
二师兄:两者都是使用红黑树作为底层的数据结构。红黑树是一种自动平衡的二叉树,它确保插入、删除和查找操作的时间复杂度都是
O(log n)。面试官:
set/map对于key的类型有什么要求吗?二师兄:因为
set/map被称为有序容器,所以对插入进去的key有排序的要求。
本文共计1555个文字,预计阅读时间需要7分钟。
某日二师兄参加XXX科技有限公司的C++工程师开发岗位面试第27面:面试官:用过std::set或std::map吗?二师兄:用过。面试官:能介绍一下二者的区别吗?面试官:能否介绍一下二者有什么应用场景?二师兄:std::set是一个有序集合,其中的元素是唯一的。
某日二师兄参加XXX科技公司的C++工程师开发岗位第27面:
面试官:用过
std::set/std::map吗?二师兄:用过。
面试官:能介绍一下二者吗?
二师兄:
std::set是一个有序的集合,其中的元素是唯一的,即每个元素只能出现一次。一般用于去重和自动排序。二师兄:
std::map同样是有序组合,只不过它不止有key,每个key还对用一个value。其中key是唯一,不可重复,但是value却没有限制。key/value也被称为键值对。面试官:知道他们底层使用什么数据结构存储数据的吗?
二师兄:两者都是使用红黑树作为底层的数据结构。红黑树是一种自动平衡的二叉树,它确保插入、删除和查找操作的时间复杂度都是
O(log n)。面试官:
set/map对于key的类型有什么要求吗?二师兄:因为
set/map被称为有序容器,所以对插入进去的key有排序的要求。

