排序
直接库函数sort()
#include<algorithm>
sort(a,a+n);//默认从小到大,a为数组
sort(a,a+n,greater<int>())//从大到小
sort(s.begin(),s.end());//为字符串s排序,也可以为STL容器排序注意重载符号
unique去重
int t=unique(q,q+n)-q;
for(int i=0;i<t;i++) cout << q[i]<<" ";
STL
vector
//头文件
#include<vector>
//初始化
vector<int>a(10,3);//括号内第一位是容器的大小,第二位是每一位初始化为具体的值
vector<int> a[N]; //定义N个vector
//支持的函数
a.size();//返回vector元素的个数
a.empty();//返回是否为空,空true,否则false
a.clear();//清空
a.front(),a.back();//返回a中第一个数,返回a中第二个数
a.push_back(),a.pop_back();//向a最后插入一个数,最后位置删除一个数
a.begin(),a.end();//返回指向a中第0个数的指针,返回指向a中最后一个数的下一位数的指针
//vector的三种遍历方式
for(int i=0;i<a.size();i++){;}
for(vector<int>::iterator i=a.begin();i!=a.end();i++){cout<<*i;}//迭代器遍历
for(auto x:a){;}//c++专属
//vector支持比较运算,按字典序判断
pair
//初始化
pair<int,string>p;//存储二元组,类型任意
pair<int,pair<int ,int>>p//存三种属性
p=make_pair(6,"zzy");
p={20,"abc"};
p.first,p.second;//输出p的第一第二元素
//pair支持比较运算,以first为第一关键字,以second为第二关键字(字典序)
string
//初始化
string a="ada";
a+="da";
//支持函数
a.substr(1,10);//(开始下标,选取长度),选取长度过长时直接输出开始下标到结尾,选取长度默认时直接输出开始下标到结尾
a.c_str();//返回数组起始地址
a.size(),a.length();//返回字符串长度
a.empty();
a.clear();
queue
//初始化
queue<int> q;
//支持函数
q.size();
q.empty();
q.push();//向队尾插入一个元素
q.front();//返回对头元素
q.back();//返回队尾元素
q.pop();//弹出对头元素
//queue没有clear(),但可用以下代替
q=queue<int>();
priority_queue
//初始化
priority_queue<int> heap;//默认大根堆
priority_queue<int,vector<int>,greater<int>>heap;//初始化为小根堆
//支持函数
heap.push();//插入元素
heap.top();//返回堆顶元素
heap.pop();//弹出堆顶元素
stack
//初始化
stack<int> heap;
heap.size();
heap.empty();
heap.push();//向栈顶插入一个元素
heap.top();//返回栈顶元素
heap.pop();//弹出栈顶元素
deque
//初始化
deque<int> q;
//支持函数
q.size();
q.empty();
q.claer();
q.front(),q.back();
q.push_back(),q.pop_back();
q.push_front(),q.pop_front();
q.begin(),q.end();
set,multiset
//初始化
set<int> s;
multiset<int> s;
//支持函数
s.size();
s.empty();
s.clear();
s.insert();//插入元素
s.find();//找到返回指向x的指针,找不到返回s.end()
s.count(x);//输出x的个数
s.erase();
//(1)当输入时一个数x,删除所有x
//(2)当输入一个迭代器,删除这个迭代器
s.lower_bound(x);//返回大于等于x的最小数的指针
s.upper_bound(x);//返回大于x的最小数的指针
map,multimap
//初始化
map<string ,int> a;
a["f"]=1;//也也用insert()
//支持函数
a.insert(pair<string,int>("k",2);
a.find("f");//找的到可用cout<<t->second;查看,找不到返回a.end()
a.clear();
a.erase();//删除key