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();//这是非共性