C++容器汇总

C++容器汇总

文章目录

  • C++容器汇总
      • 前言
    • 什么是容器?
    • iterator 迭代器的简介
    • 一.string 容器
    • 二.vector容器
    • 三.deque容器
    • 四.stack容器
    • 五.queue容器
    • 六.list容器
    • 七.set/multiset容器
    • 八.map/multimap容器

前言

​ 同学们在学习C++的容器时,不免会发现,其操作大体一致,无非是不同的容器有自身属性上的一点点区别,下面我就和大家总结一下吧!

什么是容器?

容器顾名思义就相当于一个大盒子,里面封装了我我们应用所需要的全部依赖,并形成了一个独立的运行环境。简单来说,你只需记住几个函数,就可以针对许多的问题和不同的数据类型进行增删改查等操作。

C++容器汇总_第1张图片

iterator 迭代器的简介

	无论是序列容器还是关联式容器,我们最常用的操作如查找,排序,求和等
	对数据进行遍历的操作方法是类似的。
	既然类似我们就可以通过泛型编程的思想,提供一个"中介",来隐藏不同容器的差别,
	而向上提供统一的接口,而这个"中介"便是迭代器!

迭代器的使用和指针非常类似:

//3个1初始化容器
vector<int> V(3,1);
//迭代器-->容器V的起始地址
vector<int>::iterator it = V.begin();
cout<< *it <<endl; //输出的就是起始元素

一.string 容器

string容器中就是函数调用,这里就简单的列出来吧

操作 函数 符号
赋值 .assign() =
拼接 .append() +=
查找 .find()
替换 .replace()
比较 .compare() == !=
存取 .at() [ ]
插入 .insert()
删除 .erase()
截取 .substr()

二.vector容器

vector容器又称为单端数组 ,允许随机访问

C++容器汇总_第2张图片

操作 函数 说明
尾增 .push_back()
尾删 .pop_back()
头增 .push_front()
头删 .pop_front()
插入 .insert() 迭代器+数据
删除 .erase() 迭代器指位置
存取 .at() 也可用 [ ] 号
判空 .empty() 返回bool型
容量 .capacity()
大小 .size() 返回int型
重定大小 .resize()
交换 .swap()
清除 .clear()
反转 .reverse()
排序 sort() 全局函数

三.deque容器

deque容器又称为双端数组,以数组为节点,链表一样串起来的结构,允许随机访问,但没有容量的概念

C++容器汇总_第3张图片

操作 函数 说明
尾增 .push_back()
尾删 .pop_back()
头增 .push_front()
头删 .pop_front()
插入 .insert() 迭代器+数据
删除 .erase() 迭代器指位置
存取 .at() 也可用 [ ] 号
判空 .empty() 返回bool型
大小 .size() 返回int型
交换 .swap()
清除 .clear()
反转 .reverse()
排序 sort() 全局函数

四.stack容器

stack是一种先进后出的容器,数据结构为链表
C++容器汇总_第4张图片

操作 函数 说明
入栈 .push()
出栈 .pop()
栈顶 .top()
判空 .empty() 返回bool型
栈大小 .size() 返回int型

五.queue容器

C++容器汇总_第5张图片

操作 函数 说明
入队列 .push()
出队列 .pop()
队首 .front()
队尾 .back()
判空 .empty() 返回bool型
队列长度 .size() 返回int型

六.list容器

list容器相当于一个双向链表,链表并不是连续的存储空间,因此list的迭代器只支持前移和后移
C++容器汇总_第6张图片

操作 函数 说明
尾增 .push_back()
尾删 .pop_back()
头增 .push_front()
头删 .pop_front()
插入 .insert() 迭代器+数据
删除 .erase() 迭代器指位置
.remove() 可直接指定元素
存取 .at() 也可用 [ ] 号
判空 .empty() 返回bool型
大小 .size() 返回int型
交换 .swap()
清除 .clear()
反转 .reverse()
排序 .sort() 成员函数,仿函数定排序规则

七.set/multiset容器

set/multiset(数据可重复)容器的底层由二叉树实现
C++容器汇总_第7张图片

操作 函数 说明
数据插入 .insert() 没有pushback用
判空 .empty() 返回bool型
大小 .size() 返回int型
交换 .swap()
删除 .erase() 迭代器或数指定
清除 .clear()
查找 .find() 返回迭代器
统计 .count() 返回int型

八.map/multimap容器

map/multimap(键值可重复)容器,所有元素都是pair类型成对存在,pair( 键值 ,实值 ),键值相当于索引

其底层也是由二叉树实现

操作 函数 说明
数据插入 .insert(第一种) pair<类型,类型>(键值,实值)
.insert(第二种) make_pair(键值,实值)*
插入和访问 名字[位置] 可插入也可访问
判空 .empty() 返回bool型
大小 .size() 返回int型
交换 .swap()
删除 .erase() 迭代器或数指定
清除 .clear()
查找 .find() 返回迭代器
统计 .count() 返回int

你可能感兴趣的:(c++,c++,容器)