C++ 知识量:19 - 82 - 316
C++标准库中的vector是一种动态数组,它支持随机访问和修改元素,可以动态增长和缩小。vector被定义在<vector>头文件中,它是一个类模板,可以存储任意类型的元素。
vector类型的特点包括:
动态数组:vector底层使用一个动态数组来存储元素,可以随机访问和修改元素,同时也支持使用下标访问。
动态增长:vector可以根据需要动态增长,当容量不足以容纳更多元素时,会自动分配更大的内存空间,并将原有元素复制到新的内存空间中。
多种操作:vector支持多种操作,包括添加元素、删除元素、修改元素、访问元素等。
类型安全:vector可以存储任意类型的元素,但需要在声明时指定元素类型,以保证类型安全。
内存管理:vector会自动管理内存,当vector对象被销毁时,会自动释放内存空间。
使用vector可以方便地实现动态数据的存储和处理,是C++中常用的数据结构之一。
在C++中,可以使用以下方式定义和初始化vector对象:
1. 定义空vector对象:
std::vector<int> v; // 定义一个空的vector<int>对象
2. 初始化vector对象并指定元素类型和数量:
std::vector<int> v(10, 0); // 定义一个包含10个整数的vector对象,初始值为0
3. 使用数组初始化vector对象:
int arr[] = {1, 2, 3, 4, 5}; std::vector<int> v(arr, arr + sizeof(arr) / sizeof(int)); // 使用数组初始化vector对象
4. 使用另一个vector对象初始化当前vector对象:
std::vector<int> v1 = {1, 2, 3, 4, 5}; std::vector<int> v2(v1); // 使用v1初始化v2
注意,vector对象的初始化方式可能因编译器而异。
可以使用push_back()函数向vector对象中添加元素。例如,假设有一个vector<int>类型的对象v,可以使用以下代码向其中添加一个元素:
v.push_back(10); // 在vector末尾添加一个整数值10
此函数还可以接受多个参数,以便一次添加多个元素。例如:
v.push_back(10, 20, 30); // 添加三个整数值10、20和30
除了在末尾添加元素外,还可以使用insert()函数在vector对象的任意位置插入元素。例如:
v.insert(v.begin() + 2, 40); // 在vector的第3个位置插入整数值40
此函数接受两个参数,第一个参数是指向要插入位置的前一个元素的迭代器,第二个参数是要插入的元素值。注意,插入位置的索引是从0开始的。
C++的vector提供了许多操作来管理和操作数组中的元素。除了添加元素,以下是一些常用的vector操作:
1. 删除元素:
使用erase()函数从vector中删除一个元素。例如:
std::vector<int> v = {10, 20, 30, 40}; v.erase(v.begin() + 2); // 删除vector的第3个元素
2. 访问元素:
使用下标运算符[]或迭代器访问vector中的元素。例如:
std::vector<int> v = {10, 20, 30, 40}; int first = v[0]; // 访问vector的第一个元素 int last = v.back(); // 访问vector的最后一个元素
3. 修改元素:
使用下标运算符[]或迭代器修改vector中的元素。例如:
std::vector<int> v = {10, 20, 30, 40}; v[1] = 50; // 修改vector的第二个元素为50
4. 获取vector的大小:
使用size()函数获取vector的大小(即元素的数量)。例如:
std::vector<int> v = {10, 20, 30, 40}; int size = v.size(); // 获取vector的大小并存储在size变量中
Copyright © 2017-Now pnotes.cn. All Rights Reserved.
编程学习笔记 保留所有权利
MARK:3.0.0.20240214.P35
From 2017.2.6