本文记录一些个人在答PAT题目时常用的C++ STL知识;
1.stack(栈)使用示例
//1.新建
stack<int> a;
//2.判断空,返回false,true
a.empty()
//3.入栈
a.push(x);
//4.出栈(先进后出),无返回值!
a.pop()
//5.获取栈顶元素
a.top()
//6.获取栈的长度(元素个数)
a.size()
2.pair使用示例
//1.新建
pair<first的类型,second的类型> 变量名(初始值1,初始值2);
pair<int,int> a(x,y);
//2.赋值
a.first=...; //a为指针,则.改为->
a.second=..;
//或
a={..,...}
3.map(键值对)使用示例
//1.新建
map<键的类型,值的类型> 变量名;
map<int,int> a;
//2.赋值
a.[某个键]=值;
//3.排序:通过将map转换为vector<pair<..,..>>,对vector排序
//4.遍历
for(auto it=a.begin();it!=a.end();it++)
it->first//键
it->second//值
//5.判断某个键是否存在
w.count(key)==0//0就是不存在
4.quene(队列)使用示例
//1.新建
quene<int> a;
//2.取队首
num=a.front();
//3.入队
a.push(num);
//4.出队(先进先出),vector的pop_back是先进后出!!!
a.pop();
//5.大小
a.size();
//6.判断空
a.empty():
5.set(集合)使用示例
//1.新建
set<int> a;
set<int> a(b.begin(),b.end());//整体赋值加初始化,可以利用这个把vector转set
//2.增加元素
a.insert(b);
//3.删除元素
a.erase(b)//b可以是一个值也是是迭代器指针
//4.大小
a.size();
//5.空
a.empty;
6.vector(数组)使用示例
//1.新建
vector<int> a={/*初始值*/};
vector<int> a(b.begin(),b.end());//整体赋值加初始化
//2.增加元素
a.push_back(); //在队尾加元素
a.insert(it,x);//插入单个元素:在迭代器指针it指定的地方插入元素x
a.insert(it,it1,it2);//插入一段元素:在it位置插入it1-it2的一段元素
//3.删除元素
a.pop();//删除队尾
a.erase(a.begin()+1,a.begin()+3); //删除a中第1个(从第0个算起)到第2个元素
//4.大小
a.size();
//5.空
a.empty();
//6.整体赋值
a.assign(b.begin(),b.end());
//7.清空
a.clear();