关于STL中算法库的更详细的用法说明请移步cppreference查询:http://zh.cppreference.com/w/cpp/algorithm
STL的代码从广义上讲分为三类:algorithm(算法)、container(容器)和iterator(迭代器),几乎所有的代码都采用了模板类和模版函数的方式.
在C++标准中,STL被组织为下面的13个头文件:<algorithm>、<deque>、<functional>、<iterator>、<vector>、<list>、<map>、<memory>、<numeric>、<queue>、<set>、<stack>和<utility>
。
1. vector
从后面快速的插入与删除,直接访问任何元素。
可以看作动态数组。自动分配一块连续的内存空间进行数据存储。
当存储的数据超过分配的空间时,会重新分配一块内存块:
首先,会申请一块更大的内存块;然后,将原来的数据拷贝到新的内存块中;
其次,销毁掉原内存块中的对象(调用对象的析构函数);最后,将原来的
内存空间释放掉。
随机访问方便,支持[]/vector.at()。
vector被设计成只能在后端进行追加和删除操作。
只能在最后进行push和pop,不能在头进行。
vector 类中定义了4中种构造函数:
默认构造函数:构造一个初始长度为0的空向量.
vector
构造函数:有一个可选参数,如果预定义了size,他的成员都被赋为0.
vector
复制构造函数:构造一个新的向量,作为已存在的向量的完全复制.
vector
带两个常量参数的构造函数:
vector