C++容器汇总

C++容器汇总

前言

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

什么是容器?

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

在这里插入图片描述

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容器又称为单端数组 ,允许随机访问

在这里插入图片描述

操作函数说明
尾增.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
  • 10
    点赞
  • 73
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

问题总比办法多

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值