cpp stl容器操作

底层容器常用共同操作

增加元素:iterator insert()
删除元素:iterator erase()
容器元素个数:int size()
容器是否为空:bool empty()
清空容器元素:clear()
1,2容器元素互换:1.swap(2)

序列式容器

特点:

共同操作:
 c.resize()				//重新定义容器c长度
vector
定义:vector<T> v;

1.构造函数:
 vector();					//创建一个空的vector
 vector(int n)				//创建一个元素个数为n的vector
 vector(int n,0)			//创建一个元素为n个0的vector
 vector(const vector& v)	//拷贝构造
 vector(v2.begin(),v2.end())//
2.元素操作:
 v.push_back(T& t)		//尾插元素
 v.pop_back()			//尾删元素
 v.at()					//支持随机访问元素
list
定义:list<T> l;

1.构造函数:
 list()						//创建一个空的list
 list(int n)				//创建一个含n个0的链表
 list(int n,m)				//创建一个含n个m的链表
 list(const list& l2)		//拷贝构造,创建l2的copy链表
 list(l2.begin(),l2.end())	//创建包含l2部分区间的copy链表
2.元素操作:
 l.push_back(T& t)		//尾插元素
 l.push_front(T& t)		//头插元素
 l.pop_back()			//尾删元素
 l.pop_front()			//头删元素
3.其他操作:
 l.merge()				//合并两个链表,默认升序排列
 l.reverse()			//反转链表
 l.remove()				//删除链表中匹配值的元素,匹配元素全部删除
 l.remove_if()			//删除满足条件的元素,遍历一次链表
 
 l.sort()				//覆盖algorithm::sort(),默认升序
 l.unique()				//删除相邻重复元素
deque
定义:deque<T> d;

1.构造函数:
 deque()					//创建一个空的deque
 deque(int n)				//创建一个元素个数为n的deque
 deque(int n,m)				//创建一个元素为n个m的deque
 deque(const deque& d2)		//拷贝构造,创建d2的copy队列
 deque(d2.begin(),d2.end())	//创建以[begin,end)为区间的队列
2.元素操作:
 d.push_back(T& t)		//尾插元素
 d.push_front(T& t)		//头插元素
 d.pop_back()			//尾删元素
 d.pop_front()			//头删元素
 d.at()					//支持随机访问元素

关联式容器

特点:

共同操作:
 count()
 find()
map
定义:map<T1,T2> m;

1.构造函数:
 map();						//创建一个空的map
 map(const map& m);			//拷贝构造
 map(m2.begin(),m2.end())	//区间构造
 //还有其他两种构造
2.元素操作:
 m[key]=value									//直接插入元素
 m.insert(pair<T1,T2>(key,value))				//pair对象插入元素
 m.insert(map<T1,T2>::value_type(key,value))	//value_type对象插入
 m[key]						//下标直接获取元素
set
定义:set<int,less<int> > s;
 less<int>			//是一个标准类,用于形成升序排列函数对象
 greater<int>		//用于形成降序排列函数对象

1.构造函数:
 set()//
 set()//拷贝构造
 set()//区间构造
2.元素操作:
 set_intersection()				//求两个集合交集
 set_union()					//求两个集合并集
 set_difference(s1,s2)			//s2相对于s1的差集
 set_difference(s2,s1)			//s1相对于s2的差集
 set_symmetric_difference()		//上面两个差集的并集

容器适配器

特点

不提供clear接口
stack
默认使用deque为底层容器,也可以用vector, , list实现,构造出后进先出的数据结构,只能在一端进行数据操作
 stack()			//构造空的栈
 empty()			//判断栈是否为空
 size() 			//返回栈中元素个数

 top()				//返回栈顶元素的引用
 push()				//压栈
 pop()				//出栈
queue
默认使用deque为底层容器,也可以用list实现,构造出先进先出的数据结构,一端插入另一端删除
 queue()			//构造空的队列
 empty()			//判断队列是否为空
 size() 			//返回队列中元素个数

 front()			//返回队列头元素的引用
 back()				//返回队列尾元素的引用
 push()				//入队
 pop()				//出对
priority_queue
默认使用vector为底层容器,默认是大堆,可以通过随机访问迭代器访问
 priority_queue()	//构造空的优先队列
 empty()			//判断队列是否为空
 size() 			//返回队列中元素个数	

 top()				//返回优先队列中最大元素的引用(堆顶元素)
 push()				//向优先队列插入元素
 pop()				//删除堆顶元素 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值