c++ vector

C++中的vector是一种序列容器,表示可以改变大小的数组。以下是vector的一些基本用法:

1. 包含头文件

在使用vector之前,需要包含相应的头文件:

1
#include <vector>

2. 声明一个vector

1
2
std::vector<int> vec;          // 声明一个int类型的vector
std::vector<double> vecDouble; // 声明一个double类型的vector

3. 初始化vector

1
2
3
4
5
6
std::vector<int> vec(10);            
// 创建一个包含10个int类型元素的vector,所有元素都初始化为0
std::vector<int> vec(10, 5);
// 创建一个包含10个int类型元素的vector,所有元素都初始化为5
std::vector<int> vec{1, 2, 3, 4, 5};
// 创建一个包含{1, 2, 3, 4, 5}的vector

4. 添加元素

1
2
vec.push_back(10); 
// 在vector末尾添加一个元素10

5. 访问元素

1
2
int element = vec[0]; // 访问第一个元素
int element = vec.at(0); // 使用at()函数访问第一个元素,提供边界检查

6. 修改元素

1
vec[0] = 100; // 修改第一个元素为100

7. 删除元素

1
2
3
vec.pop_back(); // 删除vector末尾的元素
vec.erase(vec.begin() + 1); // 删除第二个元素
vec.clear(); // 删除所有元素

8. 获取vector的大小和容量

1
2
size_t size = vec.size();    // 返回vector中元素的数量
size_t capacity = vec.capacity(); // 返回vector当前容量

9. 遍历vector

1
2
3
4
5
6
7
8
9
10
11
for (int i = 0; i < vec.size(); ++i) {
std::cout << vec[i] << ' ';
}
// 或者使用迭代器
for (std::vector<int>::iterator it = vec.begin(); it != vec.end(); ++it) {
std::cout << *it << ' ';
}
// C++11起,使用范围for循环
for (const auto& value : vec) {
std::cout << value << ' ';
}

10. 其他操作

  • vec.empty():检查vector是否为空
  • vec.reserve(100):预留至少能容纳100个元素的内存空间