STL之容器共性
当你在学习c++时,如果你还在为算法苦恼,那么就请你学习一下
STL吧。会让你柳暗花明的。
首先介绍一个排序函数。
sort(首地址,末地址);
sort这是一个十分神奇的函数。
头文件 algorithm
适用范围:数组 vector degue
基本用法:
参数2个:
第一个:要排序的首元素地址
第二个:要排序末元素地址
如:
int a[5]={1,2,3,4,5};
sort(a,a+5);
其中支持的是小于号,就是说结果是从小到大排列的。
就是这么神奇,不用管类型(内置类型),只要把地址给出,就能给你结果。
接下来介绍一下迭代器:iterator
封装了指针
1.正向迭代器 iterator
支持函数 .begin() .end() 都是成员函数
2.反向迭代器 reverse_iterator
支持函数 .rbegin() .rend()
3.只读迭代器
const_iterator const_reverse_iterator
标准容器:vector degue (动态数组) list
下面介绍一下简单的用法:
以vector为例:
int a[5]={1,2,3,4,5};
vector<int> vi(a,a+5);//初始化
vi元素的首地址:
vector<int>::iterator b=vi.begin();
iterator 是vector内部封装的指针类型
vi.end() 获取末尾元素地址
插入元素:
vi.insert(pos,element)
pos是插入位置 element是元素值
删除元素:
vi.erase(pos);
删除某个位置的元素
vi.erase(pos_beg,pos_end);
删除一段内存的元素。
交换元素:
非成员函数:swap(c1,c2);
成员函数:c1.swap(c2); //效率较高
清除容器中的数据:
vi.clear();
已经占用的容器的大小(字节):
vi.size()
最多可以使用的容量:
vi.max_size();
当前容量:
vi.capacity();//这是非共性