📅  最后修改于: 2023-12-03 15:29:52.467000             🧑  作者: Mango
在C++中,向量(vector)是一种动态数组,它能够在运行时进行扩展和收缩。 向量的大小可以在插入或删除元素时动态调整。
与C++数组不同,向量的大小和容量是可变的。 容量是向量能够容纳的元素数量,大小是向量实际包含的元素数量。 当向量大小超过容量时,向量的容量将自动增加。
向量与指针相比,具有更好的内存管理和安全性。 向量通过使用迭代器(iterator)来访问其元素。
声明向量需要包含 <vector>
头文件。 必须有指定向量的元素类型,例如 vector<int>
。 声明后,可以使用无参构造函数来创建一个空向量,或使用初始化列表构造函数来创建一个预先填充了值的向量。
vector<int> myVector; //创建一个空向量
vector<int> myVector{ 1, 2, 3, 4 }; //声明并初始化一个向量
vector<int> myVector = { 1, 2, 3, 4 }; //使用初始化列表构造函数
向向量添加元素可以使用 push_back()
方法。 它将元素添加到向量的末尾。 也可以使用 insert()
方法来指定插入元素的位置。
vector<int> myVector = { 1, 2, 3, 4 };
myVector.push_back(5); //在末尾添加元素
myVector.insert(myVector.begin() + 2, 6); //插入元素
可以使用 pop_back()
方法从向量末尾删除元素。 也可以使用 erase()
方法来删除指定位置的元素。
vector<int> myVector = { 1, 2, 3, 4 };
myVector.pop_back(); //从末尾删除元素
myVector.erase(myVector.begin() + 2); //从指定位置删除元素
可以使用下标运算符和迭代器来访问向量的元素。 下标从0开始。 可以使用 at()
方法来访问元素,并提供边界检查。
vector<int> myVector = { 1, 2, 3, 4 };
int firstElement = myVector[0]; //访问第一个元素
int thirdElement = myVector.at(2); //访问第三个元素
可以使用 size()
来获取向量的大小,也可以使用 capacity()
来获取向量的容量。
vector<int> myVector = { 1, 2, 3, 4 };
int vectorSize = myVector.size(); //获取向量大小
int vectorCapacity = myVector.capacity(); //获取向量容量
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<int> myVector{ 1, 2, 3, 4 };
myVector.push_back(5);
myVector.insert(myVector.begin() + 2, 6);
cout << "Vector size: " << myVector.size() << endl;
cout << "Vector capacity: " << myVector.capacity() << endl;
for (auto i : myVector) {
cout << i << " ";
}
cout << endl;
myVector.pop_back();
myVector.erase(myVector.begin() + 2);
cout << "Vector size: " << myVector.size() << endl;
cout << "Vector capacity: " << myVector.capacity() << endl;
for (int i = 0; i < myVector.size(); i++) {
cout << myVector[i] << " ";
}
cout << endl;
return 0;
}
输出:
Vector size: 6
Vector capacity: 8
1 2 6 3 4 5
Vector size: 4
Vector capacity: 8
1 2 3 4