array与vector

在 C++ 中,arrayvector 是两种常用的容器类型,用于存储和操作数据集合。它们分别替代了 C 语言中的静态数组和动态数组(通过 mallocrealloc 分配的数组)。

C++ array 的使用

array 是 C++11 引入的,它是一个固定大小的容器,提供了比传统 C 数组更安全、更方便的操作。array 的使用需要包含 <array> 头文件。 成员函数:

  • size():返回数组的大小。
  • empty():检查数组是否为空。
  • front():返回数组的第一个元素。
  • back():返回数组的最后一个元素。
  • data():返回指向数组内部数据的指针。 使用示例:
 1#include <iostream>
 2#include <array>
 3int main() {
 4    std::array<int, 5> arr = {1, 2, 3, 4, 5}; // 创建一个包含5个整数的array
 5    // 访问元素
 6    std::cout << "第一个元素: " << arr.front() << std::endl;
 7    std::cout << "最后一个元素: " << arr.back() << std::endl;
 8    // 遍历数组
 9    for (int i = 0; i < arr.size(); ++i) {
10        std::cout << arr[i] << ' ';
11    }
12    std::cout << std::endl;
13    // 使用范围-based for 循环
14    for (const int& num : arr) {
15        std::cout << num << ' ';
16    }
17    std::cout << std::endl;
18    return 0;
19}

C++ vector 的使用

vector 是一个动态数组,其大小可以在运行时改变。vector 的使用需要包含 <vector> 头文件。 成员函数:

  • size():返回向量中元素的数量。
  • capacity():返回向量当前分配的存储空间大小。
  • empty():检查向量是否为空。
  • push_back():在向量的末尾添加一个元素。
  • pop_back():删除向量的最后一个元素。
  • front():返回向量的第一个元素。
  • back():返回向量的最后一个元素。
  • data():返回指向向量内部数据的指针。 使用示例:
 1#include <iostream>
 2#include <vector>
 3int main() {
 4    std::vector<int> vec = {1, 2, 3, 4, 5}; // 创建一个包含5个整数的vector
 5    // 添加元素
 6    vec.push_back(6);
 7    // 访问元素
 8    std::cout << "第一个元素: " << vec.front() << std::endl;
 9    std::cout << "最后一个元素: " << vec.back() << std::endl;
10    // 遍历向量
11    for (int i = 0; i < vec.size(); ++i) {
12        std::cout << vec[i] << ' ';
13    }
14    std::cout << std::endl;
15    // 使用范围-based for 循环
16    for (const int& num : vec) {
17        std::cout << num << ' ';
18    }
19    std::cout << std::endl;
20    // 删除最后一个元素
21    vec.pop_back();
22    return 0;
23}

替代 C 语言中的数组

  • array 替代了 C 语言中固定大小的数组。
  • vector 替代了 C 语言中动态分配的数组,如通过 mallocrealloc 分配的数组。