Linux C/C++ or 嵌入式面试之《C++ STL系列》(2) 关联式容器面试问题汇总

理解每种关联式容器的特性,以及与序列式容器的区别,每种关联式容器间的区别,这些是面试官关心的问题,不用去死记接口,面试一般不会让你背接口。

1、set容器特性

set是一种关联式容器,其特性如下:

  • set以RBTree作为底层容器
  • 所有元素只有key没有value,value就是key
  • 不允许出现键值重复
  • 所有的元素都会被自动排序
  • set容器中的find查找效率高,因为底层是一个二叉搜索树,比要查找的值小就去左子树查找,反之则去右子树查找。
  • 两个set的交换的其实是交换结点的指针,效率高。
  • 不能通过迭代器来改变set的值,因为set的值就是键,而键值不允许修改。

如果set中允许修改键值的话,那么首先需要删除该键,然后调节平衡,在插入修改后的键值,再调节平衡,如此一来,严重破坏了set的结构,导致iterator失效,不知道应该指向之前的位置,还是指向改变后的位置。所以STL中将set的迭代器设置成co

©️2020 CSDN 皮肤主题: 终极编程指南 设计师:CSDN官方博客 返回首页
实付 39.90元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值