序列式容器
1. 常用的数据结构 ( 容器 ) 及分类 : 数组 , 链表 , 树 , 栈 , 队列 ; 容器可以分为序列式 , 与关联式 两种 ;
2. 序列式容器 : 序列式容器的元素排列的顺序与元素本身无关 , 其先后顺序由元素添加到容器中的顺序决定 ;
3. 常用的序列式容器 : C++ 的 STL ( 标准模板库 ) , 包括 vector ( 向量 ) , list ( 列表 ) , queue ( 队列 ) , dequeue ( 双向队列 ) , stack ( 栈 ) , priority_queue ( 优先队列 ) ;
vector 简介
vector 向量是一种支持快速随机访问的 , 连续存储元素的容器 ;
vector , dequeue , list 调用方式基本一致 , 这里只研究 vector 一种 ;
vector ( 向量 ) 头文件
vector 头文件 : 使用 vector 首先要导入头文件 , 之后才能使用 vector 容器 ;
//vector 是 C++ 中定义的模板类 #include <vector>
vector ( 向量 ) 声明及初始化
1. 声明 vector ( 基本用法 ) : 格式 " vector <元素类型名称> 容器名称 ; " ; 声明 vector 容器 , 尖括号中的元素类型名称 , 是容器中存储的元素的类型 ;
//声明向量 vector<int> vector_1;
2. 声明 vector ( 指定容量 ) : 调用构造方法 , 并传入 int 类型参数 , 该参数就是 vector 容器的元素个数 ;
//调用向量的构造方法 , 并传入一个 int 类型参数 //表示创建一个有 8 个 int 类型元素空间的向量 vector<int> vector_2(8);
3. 声明 vector ( ① 指定容量 ② 初始化内容 ) : 调用构造方法 , 传入 2 个参数 ;
① 容量 : 第一个参数是 vector 容量 ;
② 元素 : 第二个参数是 vector 中初始化的元素内容 ;
//表示创建有 8 个元素的向量 , 8 个元素的值都是 2 vector<int> vector_3(8 , 2);
4. 声明 vector ( 使用另外 vector 初始化 ) : 调用构造方法 , 传入vector 对象 ;
//初始化向量时 , 传入另一个向量 vector<int> vector_4(vector_3);
vector ( 向量 ) 添加元素
添加元素 : 调用 push_back 方法 , 容器出入策略 , 后进先出 ;
// ( 1 ) 增加元素 : 调用 push_back 方法 , 容器出入策略 , 后进先出 vector_1.push_back(8); vector_1.push_back(88);
vector ( 向量 ) 查询元素
下面获取的元素都是基于上面小节添加的元素 ;
1. 通过下标获取元素 : 使用格式 " vector 变量名称 [ 下标索引 ] " , 这里的 [] 在 vector 中进行了运算符重载 ;
// <1> 通过下标获取元素 // 这里的 [] 在 vector 中进行了运算符重载 cout << "通过下标获取 vector_1 第 0 个元素 : vector_1[0] : " << vector_1[0] << endl;
2. 通过 at() 方法获取对应索引的元素 ;
// <2> 通过 at() 方法获取对应索引的元素 cout << "通过 at 方法获取 vector_1 第 0 个元素 : vector_1.at(0) : " << vector_1.at(0) << endl
;
3. 获取第一个元素 ;
// <3> 获取第一个元素 cout << "通过 front 方法获取 vector_1 第 1 个元素 : vector_1.front() : " << vector_1.front() << endl;
4. 获取最后一个元素 ;
// <4> 获取最后一个元素 cout << "通过 back 方法获取 vector_1 最后 1 个元素 : vector_1.back() : " << vector_1.back() << endl;
5. 执行结果 :
通过下标获取 vector_1 第 0 个元素 : vector_1[0] : 8 通过 at 方法获取 vector_1 第 0 个元素 : vector_1.at(0) : 8 通过 front 方法获取 vector_1 第 1 个元素 : vector_1.front() : 8 通过 back 方法获取 vector_1 最后 1 个元素 : vector_1.back() : 88
vector ( 向量 ) 删除元素
1. 删除最后加入的元素 : 调用 pop_back 方法 , 容器出入策略 , 后进先出 ; 注意这里并没有修改 vector 容量大小 , 只是将最后的元素清空了 ;
// <1> 调用 pop_back 方法 , 容器出入策略 , 后进先出 vector_1.pop_back();
之前向 vector 中先后放入了 8 和 88 两个数 , 然后将后面的 88 元素设置成了 0 , 目前只剩下一个元素 8 , 但容器的元素个数是 2 个 ;