文章目录
C++容器汇总
前言
同学们在学习C++的容器时,不免会发现,其操作大体一致,无非是不同的容器有自身属性上的一点点区别,下面我就和大家总结一下吧!
一.string 容器
string容器中就是函数调用,这里就简单的列出来吧
| 操作 | 函数 | 符号 |
|---|---|---|
| 赋值 | .assign() | = |
| 拼接 | .append() | += |
| 查找 | .find() | |
| 替换 | .replace() | |
| 比较 | .compare() | == != |
| 存取 | .at() | [ ] |
| 插入 | .insert() | |
| 删除 | .erase() | |
| 截取 | .substr() |
二.vector容器
vector容器又称为单端数组 ,允许随机访问

| 操作 | 函数 | 说明 |
|---|---|---|
| 尾增 | .push_back() | |
| 尾删 | .pop_back() | |
| 头增 | .push_front() | |
| 头删 | .pop_front() | |
| 插入 | .insert() | 迭代器+数据 |
| 删除 | .erase() | 迭代器指位置 |
| 存取 | .at() | 也可用 [ ] 号 |
| 判空 | .empty() | 返回bool型 |
| 容量 | .capacity() | |
| 大小 | .size() | 返回int型 |
| 重定大小 | .resize() | |
| 交换 | .swap() | |
| 清除 | .clear() | |
| 反转 | .reverse() | |
| 排序 | sort() | 全局函数 |
三.deque容器
deque容器又称为双端数组,以数组为节点,链表一样串起来的结构,允许随机访问,但没有容量的概念

| 操作 | 函数 | 说明 |
|---|---|---|
| 尾增 | .push_back() | |
| 尾删 | .pop_back() | |
| 头增 | .push_front() | |
| 头删 | .pop_front() | |
| 插入 | .insert() | 迭代器+数据 |
| 删除 | .erase() | 迭代器指位置 |
| 存取 | .at() | 也可用 [ ] 号 |
| 判空 | .empty() | 返回bool型 |
| 大小 | .size() | 返回int型 |
| 交换 | .swap() | |
| 清除 | .clear() | |
| 反转 | .reverse() | |
| 排序 | sort() | 全局函数 |
四.stack容器
stack是一种先进后出的容器,数据结构为链表

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

| 操作 | 函数 | 说明 |
|---|---|---|
| 入队列 | .push() | |
| 出队列 | .pop() | |
| 队首 | .front() | |
| 队尾 | .back() | |
| 判空 | .empty() | 返回bool型 |
| 队列长度 | .size() | 返回int型 |
六.list容器
list容器相当于一个双向链表,链表并不是连续的存储空间,因此list的迭代器只支持前移和后移

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

| 操作 | 函数 | 说明 |
|---|---|---|
| 数据插入 | .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 |
本文含有隐藏内容,请 开通VIP 后查看