目录

# c++ vector

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

# 1. 包含头文件

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

#include <vector>

# 2. 声明一个vector

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

# 3. 初始化vector

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. 添加元素

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

# 5. 访问元素

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

# 6. 修改元素

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

# 7. 删除元素

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

# 8. 获取vector的大小和容量

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

# 9. 遍历vector

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个元素的内存空间