【汇总,不定期更新】c++实用的STL
2017-09-17 21:27
288 查看
不定长数组vector
定义
不定长数组就是可以在程序中随意更改数组长度的一种STL。优点
正如字面上理解,不定长数组,就是长度没有确定的数组,这样可以最大限度地节约空间,而且作为一个独立的类型,vector还有自己特色操作。如何定义
怎么定义一个int类型的vector:vector<int>a;
如何取用元素
vector类型和数组非常的相像,支持下标,例如a。
基本操作
int len=a.size();取用a的长度;类似于数组的sizeof();//对于所有的容器都生效a.resize(100);给a分配100个空间,下标是0~99;
a.push_back(234);向a的尾部添加一个元素234;
a.pop_back();a的末尾删掉一个元素;
a.clear();清空a;
a.empty();判断a是不是空的;//对于所有的stl容器都生效
a.begin()是一个头指针;a.end()是超尾指针(左闭右开区间);
vector排序
和一般的数组一样,vector也可以用系统内置快排sort不过写法不太一样。
下面给个例子,加入要给a这个int类型的vector排序:
sort(a.begin(),a.end());
这样就完成了对a的排序。(默认从小到大)
vector不定长内部实现
如果你没有给vector定义多长的空间,或者你开的空间过小,但是你仍然在用push_back,会不会有溢出风险?答案是不会。如果你存了n个元素,它的空间是二的幂,而且>=n,<=2n;这玩意儿类似于倍增的思想,如果溢出就开多一倍的空间。队列queue
队列没有clear操作
队列的clear操作应自己手写。while(q.size())q.pop();
这样啊就可以实现队列q的清空操作。
一些操作
a.size()a.clear()
a.empty()
a.pop()
a.front()
a.push()
deque双向队列
q.push_front()
q.push_back()
q.pop_fr
q.pop
set元素不重复的集合
struct poi { double x,y; int id; poi(){}; poi(double x_,double y_) { x=x_,y=y_; } }; bool operator<(poi a,poi b) { return a.x+eps<b.x||a.x<b.x+eps&&a.y<b.y; } set<rec>s;
multiset多重集
lower_bound()upper_bound()
map映射
相关文章推荐
- 一条语句系列——C++ STL(不定期更新)
- C++:STL标准入门汇总
- C++:STL标准入门汇总
- C++:STL标准入门汇总
- C++基本限制事项(不定期更新ing......)
- 【转载】C++:STL标准入门汇总
- C++:STL标准入门汇总(http://www.cnblogs.com/shiyangxt/archive/2008/09/11/1289493.html)
- C++:STL标准入门汇总
- 【C++】C++常见面试题汇总,持续更新中...
- android 使用RelativeLayout布局出现的问题汇总(不定期添加更新)
- Hive常用知识汇总,不定期更新
- 分享一些实用的Android Studio插件 - 不定期更新
- PHP实用的小工具函数,不定期更新
- C++:STL标准入门汇总
- C++:STL标准入门汇总
- c++ stl 使用汇总(string,vector,map,set)
- C++:STL标准入门汇总
- [置顶] 关于C++中STL的一些东西(不定期整理)
- spring缓存 相关资料整理和问题汇总(不定期更新)
- C++:STL标准入门汇总