STL常用容器模板

来源:互联网 发布:linux命令自动补全 编辑:程序博客网 时间:2024/06/06 03:58

栈: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,否则返回falsec.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 0
原创粉丝点击