C++STL:顺序容器之vector

IDC服务

C++STL:顺序容器之vector

2024-12-10 00:44


在C++的标准模板库(STL)中,vector 是一种动态数组容器。它允许你高效地管理存储数据,并提供了丰富的成员函数以便进行快速的插入、删除和访问操作。理解和掌握 vector 的使用是 C++ 编程中非常重要的基础技能。 1. 定义与包含头文件

                                            




在C++的标准模板库(STL)中,vector 是一种动态数组容器。它允许你高效地管理存储数据,并提供了丰富的成员函数以便进行快速的插入、删除和访问操作。理解和掌握 vector 的使用是 C++ 编程中非常重要的基础技能。

1. 定义与包含头文件

vector 是 STL 中的一个容器,需要包含 vector 头文件。其基本的定义形式如下:

#include <vector>
std::vector<int> numbers;  // 创建一个空的整数向量
std::vector<int> numbers = {1, 2, 3, 4, 5};  // 创建并初始化一个整数向量
  • #include <vector>:导入标准库中的 vector 类模板。
  • std::vector<int> numbers;:声明一个类型为 int 的空向量。
  • std::vector<int> numbers = {1, 2, 3, 4, 5};:声明一个初始化了元素的向量。

2. 向 vector 中添加元素

vector 提供了多种方式来添加元素,常见的两种方法是使用 push_back() 和 insert()

  • push_back():在向量的末尾添加元素。
numbers.push_back(6);  // 在向量末尾添加元素6
  • insert():在指定位置插入元素。insert() 可以插入到任意位置,提供灵活性。
numbers.insert(numbers.begin() + 2, 7);  // 在索引位置2处插入7

3. 访问和修改元素

你可以通过下标运算符 [] 或者 at() 函数来访问和修改 vector 中的元素:

  • 使用 [] 访问元素
int element = numbers[0];  // 获取第一个元素
  • 使用 at() 访问元素at() 提供了边界检查,如果访问越界,会抛出异常 out_of_range
int element = numbers.at(1);  // 获取第二个元素
  • 修改元素
numbers[0] = 10;  // 将第一个元素修改为10

4. 获取 vector 的大小和容量

vector 提供了两个常用的成员函数来获取大小和容量:

  • size():返回 vector 中元素的个数。
int size = numbers.size();  // 获取向量的元素数量
  • capacity():返回 vector 容器当前分配的空间容量(可能大于实际存储的元素个数)。
int capacity = numbers.capacity();  // 获取向量的容量

5. 遍历 vector 中的元素

你可以通过传统的 for 循环或者范围 for 循环遍历 vector 中的元素。

  • 使用常规 for 循环
for (int i = 0; i < numbers.size(); i++) {
    std::cout << numbers[i] << " ";
}
  • 使用范围 for 循环(C++11 及以上版本):更加简洁且易读。
for (int num : numbers) {
    std::cout << num << " ";
}

6. 删除 vector 中的元素

vector 提供了 pop_back() 和 erase() 两种常用方法来删除元素。

  • pop_back():删除末尾元素,时间复杂度为 O(1)。
numbers.pop_back();  // 删除最后一个元素
  • erase():删除指定位置的元素,可以删除单个元素或多个元素。
numbers.erase(numbers.begin() + 2);  // 删除第2个位置的元素

7. 判断 
标签:
  • C++
  • vector

© 蓝易云.