STL
来源:互联网 发布:最早睡直播软件 编辑:程序博客网 时间:2024/06/03 08:38
1.队列: 用于广搜
queue
queue<int> q;q.push(); 入队q.front(); 队首元素q.pop(); 队首元素出队q.size(); 队的大小
优先队列: 一般用来处理堆问题
priority_queue<int> q; //大根堆,q.top( )是队中最大的数priority_queue<int,vector<int>,greater<int> > q; //小根堆,最后的两个“>”之间要有空格,vector不用单另开头文件。struct node{ int u,v; //v为顺序 bool operator < (const node &a) const { if(u!=a.u) return u<a.u;//最大值优先 return v>a.v; //最小值优先 }};priority_queue<node> q1;
例题:合并果子
2.栈:处理字符匹配问题
stack
stack<int> st;st.push(); 入栈st.top(); 栈顶元素st.pop(); 出栈st.size(); 栈的大小
3.映射:map
map<string,int> m; //int值默认为0实例:产生冠军
4.集合:set
set元素遍历set<int>::iterator iter;for(iter=s.begin();iter!=s.end();iter++){ cout<<*iter<<" ";}
5.不定长数组:vector
vector的用法6.去重函数:unique
unique(a,a+n)返回的是a去重后的尾地址(该函数把重复的元素移到后面去,依然保存到了原数组中,然后返回去重后最后一个元素的地址) sort(a,a+n,cmp); //要先排序; len=unique(a,a+n)-a;
7.二分法的stl:
upper_bound(a,a+k,value)-a ---返回一个递增序列中第一个大于value的位置;lower_bound(a,a+k,value)-a ---返回一个递增序列中第一个大于等于value的位置;以上两个函数,当数组里的值都小于(等于)value时,返回k,k实际越界了。
8.
memset(a,0/-1,sizeof(a)); 置0或-1,n为数组a的长度;memcpy(b, a, sizeof(a)); ---把数组a全部元素复制到数组b中memcpy(b, a, sizeof(double) * k); ---从数组a复制k个元素到数组b
9.全排列:
int a[]={2,1,3}; sort(a,a+3); do{ cout << a[0] << " " << a[1] << " " << a[2] << endl; } while (next_permutation(a,a+3));//递增数组;*prev_permutation(a,a+3)//用于递减递减数组
10.字符串分割
stringstream ss;
/*以空格为分割符*/ #include<string> #include<sstream> string s,str; while(getline(cin,s)){ if(s[0]=='#') break; stringstream ss; map<string,int> m; ss<<s; /*把字符串s输入到ss中*/ while(ss>>str){ /*ss输出字符串,给str赋值*/ m[str]++; } printf("%d\n",m.size()); }例题:单词数
11.向上取整函数
ceil()
double v,d;int sum=ceil(v/d);例题:盐水的故事
1 0
- stl
- stl
- STL
- STL
- STL
- STL
- STL
- STL
- STL
- stl
- STL
- STL
- STL
- STL
- STL
- STL
- STL
- STL
- 完美运动框架【js】
- DXP的使用及绘制PCB
- MySQL修改数据表
- 存储过程中游标的使用
- 彻底理解JAVA动态代理
- STL
- Android——数据适配器 BaseAdapter的使用和优化
- UVA 11468 Substring AC 自动机套DP
- laravel 原有项目上安装插件 卸载插件
- HDU 1052(贪心)
- idea2016.1激活
- QT的显示机制
- c#之Datetimepicker格式的设置
- UVAlive 7487 Association of Cats and Magical Lights(线段树)