参考:https://www.runoob.com/cplusplus/cpp-tutorial.html
本教程旨在提取最精炼、实用的C++面试知识点,供读者快速学习及本人查阅复习所用。
目录
第七章 C++ STL(标准模板库)
STL(Standard Template Library),即标准模板库,是一个具有工业强度的,高效的C++程序库。STL中包括六大组件:容器、迭代器、算法、仿函数、迭代适配器、空间配置器。
7.1 容器
STL中的常用容器包括:序列式容器(vector、deque、list)、关联式容器(map、set)、容器适配器(queue、stack)。
7.1.1 序列式容器
1)vector
vector是一种动态数组,在内存中具有连续的存储空间,支持快速随机访问。由于具有连续的存储空间,所以在插入和删除操作方面,效率比较慢。其常用操作如下:
//需要包含头文件
#include <vector>
//1.定义和初始化
vector<int> vec1; //默认初始化,vec1为空
vector<int> vec2(vec1); //使用vec1初始化vec2
vector<int> vec3(vec1.begin(),vec1.end());//使用vec1初始化vec2
vector<int> vec4(10); //10个值为0的元素
vector<int> vec5(10,4); //10个值为4的元素
//2.常用操作方法
//2.1 添加函数
vec1.push_back(100); //尾部添加元素
vec1.insert(vec1.end(),5,3); //从vec1.back位置插入5个值为3的元素
//2.2 删除函数
vec1.pop_back(); //删除末尾元素
vec1.erase(vec1.begin(),vec1.begin()+2); //删除vec1[0]-vec1[2]之间的元素,不包括vec1[2]其他元素前移
vec1.clear(); //清空元素,元素在内存中并未消失,通常使用swap()来清空
vector<int>().swap(V); //利用swap函数和临时对象交换内存,交换以后,临时对象消失,释放内存。
//2.3 遍历函数
vec1[0]; //取得第一个元素
vec1.at(int pos); //返回pos位置元素的引用
vec1.front(); //返回首元素的引用
vec1.back(); //返回尾元素的引用
vector<int>::iterator begin= vec1.begin(); //返回向量头指针