C++容器

参考:cplusplus.com
(注意,所有可以用迭代器访问的东西都可以直接调用algorithm库的函数比如sort和reverse)

常用的容器类型如下:

数组类容器

【数组类容器分配的空间是连续的,可以通过下标索引方式找到】
array:静态数组
vector:动态数组,变长。
两者的相似之处在于迭代器类似。
但:
vector可以用的函数类型更丰富,初始化也更丰富。
因为是变长,所以也可以push_back和pop操作来决定元素的进出;

对于初始化特殊值为5个6:
array<int,5> arraynums;
arraynums.fill(6);

vector<int> vectornums(5,6);

此外,vector可以通过resize和reserve等方式调整大小。

链表类容器

list:双向链表
forward_list:单向链表。
链表,不再采用连续的内存空间。
初始化函数为assign,填充的参数和vector类似。
同样是序列类,list允许从前或者从后面操作(数组类只能从后往前做)
允许push_back,push_front和pop_back,pop_front
可以通过remove直接移除指定元素。
可以通过unique实现去重。
可以调用sort。

而forward_list只处理头部。
可以pop_front和push_front来管理头部
其余用法和list类似。

队列类容器

queue,FIFO类的队列。
允许push和pop

deque,双边的队列,允许push_back,push_front和pop_back,pop_front

特殊队列:优先队列,保证最前面的永远是最大的

stack, LIFO队列,允许 push和pop,也可以取top

map类容器

map的本质是红黑树
unordered_map的本质是哈希表

集合类容器

set的本质是平衡二叉树
unordered_set的本质是哈希表

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • STL 1 STL的诞生 长久以来,软件界一直希望建立一种可重复利用的东西; C++的面向对象和泛型编...
    dreamer11阅读 4,223评论 0 1
  • (2020.12.08 Tues)STL容器允许重复利用已有的实现构造自己特定类型下的数据结构,通过设置一些模板类...
    Mc杰夫阅读 2,563评论 0 0
  • 原文链接 什么是容器 首先,我们必须理解一下什么是容器,在C++ 中容器被定义为:在数据存储上,有一种对象类型,它...
    Franck2020阅读 3,352评论 0 0
  • 什么是容器 首先,我们必须理解一下什么是容器,在C++ 中容器被定义为:在数据存储上,有一种对象类型,它可以持有其...
    Jack_Cui阅读 3,352评论 0 2
  • 一、string 虽然string一般不被认为是C++的容器,但是它和容器具有很多相同的特点。因此先说一下stri...
    play_robot阅读 4,620评论 0 0

友情链接更多精彩内容