C++ 语言 的 标准模板库 ( STL , Standard Template Library ) 中 的 vector 容器 是一种 " 动态数组 " , 该容器 的 大小 可以在运行时 动态 增长 或 缩小 ;
vector 动态数组 容器 提供了一系列的 增 / 删 / 查 / 改 / 排序 等功能 ;
下面直接声明 vector 动态数组变量 , 可以在栈内存中创建 vector 容器对象 , 并使用该 动态数组 容器 ;
vector 动态数组 容器 是使用 模板类 实现的 , vector 对象 的 默认构造形式 如下 :
vector<T> vecT;
上述默认构造形式 一旦声明 , 该 vector 容器就初始化成功 , 可以向其中插入数据 ;
存放普通数据类型的 vector 容器 : 其中的 元素类型 是 泛型 T , 因此 vector 容器中可以 装 任意类型的 元素 , 可以是 基本数据类型 , 如 int / float 类型 ;
// 存放 int 类型元素的 vector 动态数组容器
vector<int> vecInt;
// 存放 float 类型元素的 vector 动态数组容器
vector<float> vecFloat;
存放 类对象 的 vector 容器 : vector 动态数组容器中 也可以装 类对象 元素 ;
// 存放 string 类型元素的 vector 动态数组容器
vector<string> vecString;
存放 自定义类对象 的 vector 容器 : 存放的 类对象 还可以是 自定义的 类对象 ;
// 自定义类
class Student{};
// 存放 Student 类对象 元素的 vector 动态数组容器
vector<Student> vecS;
存放 自定义类指针 的 vector 容器 :
容器元素的存放是按值复制的方式进行的 , 所以此时 Student 类必须提供 拷贝构造函数 ;
一般情况下 , 不会直接存放类对象 , 因为每次存取都要调用 拷贝构造函数 进行 , 非常消耗资源 , 这里推荐存放 指向类对象的指针 或 引用 , 避免二次拷贝的情况 ;
// 自定义类
class Student{};
// 存放 指向 Student 类对象的指针 类型的 元素的 vector 动态数组容器
vector<Student*> vecpS;
使用 vector 动态数组容器 前 , 需要导入
#include "iostream"
using namespace std;
#include "vector"
按照如下 默认构造 形式 创建 vector 容器对象即可 , 将泛型 T 设置为不同的类型 , 即可存储不同类型的元素 ;
vector<T> vecT;
代码示例 :
#include "iostream"
using namespace std;
#include "vector"
// 自定义类
class Student{};
int main() {
// 存放 int 类型元素的 vector 动态数组容器
vector<int> vecInt;
// 存放 float 类型元素的 vector 动态数组容器
vector<float> vecFloat;
// 存放 string 类型元素的 vector 动态数组容器
vector<string> vecString;
// 存放 Student 类对象 元素的 vector 动态数组容器
vector<Student> vecS;
// 存放 指向 Student 类对象的指针 类型的 元素的 vector 动态数组容器
vector<Student*> vecpS;
// 控制台暂停 , 按任意键继续向后执行
system("pause");
return 0;
};
执行结果 :