#includeSTL标准库
standard template library
C++自带的函数库,包含一些可以直接使用的类或者函数,如:sort,string,vector,list,map,set,queue,priority_queue,stack,pair等
templatesortvoid swap(T &a,T&b) { T=a; a=b; b=c; }
void sort(RandomIt first,RandomIt last,Compare comp);
默认从小到大排列
int a[]={1,2,3};
sort(a,a+3);
bool cmp(int a,int b)
{
return a>b;
}
sort(a,a+3,cmp);
string
//读入一个字符串,以空格为间隔符 cin>>str; //读入一行 getline(cin,str);
string类函数
vector变长数组,存储多个相同类型元素的容器。
//存储int类型变量的vector,默认size为0 vectorvec; //size为n vector vec(n); //迭代器声明 vector ::iterator i=vec.begin() //begin返回的是第一个元素的迭代器,而end返回的是最后一个元素的下一个 //将a推入vec的末尾 vec.push_back(a); //删除最后一个元素 v.pop_back() //获取元素个数 v.size() //修改容量 v.resize(int n) //判断是否为空 v.empty() //清空 v.clear() //插入 v.insert(iter,a) //删除 v.erase(iter) //返回第一个元素的引用 v.front() //返回第二个元素的引用 v.back() [关于引用](https://blog.csdn.net/sinat_42483341/article/details/87465982) //输出 for(int i=0;i vector和数组的区别:
list双向链表
vector和listlistlis; //前端,中间,后端插入 lis.push_front(item); lis.push_back(item); auto it=find(lis.begin(),lis.end(),val); if(it!=lis.end()) lis.insert(it,item) for(auto it=lis.begin();it!=lis.end();it++) cout<<*it; for(auto it:list) cout< map key-value形式
mapmp; map[0]=a; for(auto it:mp) cout< map中迭代器无法直接和数加减,只能使用–、++
pairpairp; pari=make_pair(1,1); cout< set 集合,所有元素唯一,并且按照值自动排序
set队列s; s.insert(item); //最小元素的迭代器 s.begin(); 先进先出
queue优先级队列q; q.push(item); q.pop(); q.front(); 优先级队列按照元素的优先级顺序,从高到低弹出,默认是最大
priority_queue栈pq; struct cmp{ bool operator()(const pair p1, const pair p2) { return p1.second > p2.second;//因为priority_queue的top相当于vector的back } */ }; 先进后出
stack函数s; s.top() swap(a,b)//交换两个元素的值 reverse(str.begin(),str.end());//把一个容器逆序参考手册https://zh.cppreference.com



