STL 标准容器比较

STL 容器分为顺序容器 和关联容器


(1)顺序容器包括

1、vector 动态数组实现

支持随机存储,只要知道位置就可以在常数时间内存取任何一个元素。在末端附加或者删除元素性能很好

在中部删除或者添加元素性能不理想,因为要移动后面的其他元素。

Vector容量很重要,因为一旦元素数量大于容量,内存会重新分配,导致references,pointers和iterators都失效


2、deque 动态数组实现

但是数组头尾都开放,通常实现为一组独立的区块

(1)可以在两端安插、删除数据


3、list

   (1)list 不支持随即存取

   (2)在任何位置安插或者删除都是常数时间完成。

   (3)安插或删除不会造成迭代器失效



4、stack 以及queue

stack核心接口为三个成员函数push(), top(),pop(),底层会调用deque的,push_back(),back().

注意:pop()是移除下一个元素但是并不将它返回,top()返回下一个元素但是并不将它移除。


实际上queue单纯的把各项操作转化为内部容器的对应调用。

  注意:pop()虽然移除下一个元素,但是并不返回它,front()和 back()返回下一个元素,但是并不

  移除它。


5、priority queue


实际上priority queue单纯的把各项操作转化为内部容器的对应调用。

   注意优先队列中,“下一个元素”是指优先级最高的元素

   核心接口为三个成员函数push(), top(),pop()


6、string


关联容器包括:

set

multiset


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值