STL常用容器模板

栈:stack

#include <stack>
stack<int> s;
成员函数:
//判空求规模
s.empty();
s.size();
//数据访问
s.top();
//数据增删
s.push();
s.pop();


队列:queue

#include <queue>
queue<int> q;
成员函数:
//判空求规模
q.empty();
q.size();
//数据访问
q.front();
q.back();
//数据增减
q.push();
q.pop();


堆:priority_queue

#include<queue>   
  
priority_queue<int> H;  //大根堆  
priority_queue<int,vector<int>,greater<int> > h;  //小根堆,最后的两个“>”之间要有空格,vector不用单另开头文件。至于greater是什么意思,我并不知道……  

成员函数:与栈完同

//判空求规模
h.empty();
h.size();
//数据访问
h.top();
//数据增删
h.push();
h.pop();
**注:若数据元素为结构体,则需重载<运算符。


双端队列:deque

#include <deque>
deque<int> d;

成员函数:

d.push_front();	//vector无
d.push_back();
d.pop_front();//vector无
d.pop_back();

//其他与vector几乎一致(就是以vector为原型创造的)
//vector无法在front处进行pop与push修改


向量容器:vector

#include <vector>
vector<int> c;
成员函数:

//判空判规模
c.empty();		//判断容器是否为空,若为空返回true,否则返回false

c.size();		//返回当前容器中实际存放元素的个数

//数据访问
c.at(index);		//返回指定index位置处的元素

c.front();		//返回容器最开始单元数据的引用

c.back();		//返回容器最后一个数据的引用

c.begin();		//返回指向容器最开始位置数据的指针

c.end();		//返回指向容器最后一个数据单元的指针+1

//数据修改
c.push_back(elem);		//在容器后端加入新元素

c.pop_back();		//删除容器最后位置处的元素

c.erase(p);		//删除指针p指向位置的数据,返回下指向下一个数据位置的指针(迭代器)

c.erase(begin,end);	//删除begin,end区间的数据,返回指向下一个数据位置的指针(迭代器)

c.clear();		//清除所有数据

c1.swap(c2);		//交换两个容器中的数据

c.insert(p,elem);	//在指针p指向的位置插入数据elem,返回指向elem位置的指针       

c.insert(p,n,elem);	//在位置p插入n个elem数据,无返回值

c.insert(p,begin,end);	//在位置p插入在区间[begin,end)的数据,无返回值

//不常用
c.resize();		//重新设置vector的容量

c.max_size();		//返回容器的最大容量

c.reserve();		//同c.resize()

c.capacity();		//同c.size()

c.rbegin();		//将vector反转后的开始指针返回(其实就是原来的end-1)

c.rend();		//将vector反转后的结束指针返回(其实就是原来的begin-1)



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值