STL容器知识点总结(面试用)

vector:动态增加大小,每一次扩容都以原大小的两倍另外配置一块较大空间,然后将原内容拷贝过来,接着才开始在原内容之后构造新元素,并释放原vector。

由上,所以对于vector的任何操作,一旦引起空间重新配置,指向原vector的所有迭代器就都失效了。

list:插入和接合操作都不会造成原有的list迭代器失效,删除的话,只是影响被删除元素的迭代器失效;

list是一个环状双向链表,只需要一个指针,便能完整表现整个链表。

deque容器是一个双端队列。

-------------------------------------------------------------------------------------

关联式容器:类似于关联型数据库,每个元素都有一个键值key和一个实值value,当元素被插入到关联容器中时,容器内部结构就依照其键值大小,以某种特定规则将这个元素放置于适当位置。

set:所有元素都会根据元素的键值自动被排序,set不允许两个元素有相同的值;

不能通过set的迭代器改变set的元素值,否则会破坏set的组织结构。

set<T> :: iterator 被定义为底层红黑树的const_iterator。

map:所有元素都会根据元素的键值自动被排序,map的所有元素都是pair类型,同时拥有键值和实值(pair<key, value>);

map不允许两个元素拥有相同的键值,map的key不能被修改,因为关系到map元素的排列规则。但可以改变map的value值,所以map的迭代器既不是一种constant interator,也不是一种mutable iterator。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值