std::vector 常用用法汇总和代码用例

文章目录

      • 用法汇总
      • 完整示例代码
      • .begin() 的用法

用法汇总

  1. 初始化 vector
  2. 添加元素(使用 push_back)。
  3. 访问元素(使用 [] 运算符和 at() 方法)。
  4. 获取大小(使用 size())。
  5. 遍历元素(使用范围基于的 for 循环和迭代器)。
  6. 删除元素(使用 pop_back()erase())。
  7. 访问最后一个元素(使用 back())。
  8. 清空 vector(使用 clear())。

完整示例代码

#include 
#include 

int main() {
    // 1. 初始化 vector
    std::vector<int> vec;

    // 2. 添加元素
    vec.push_back(1);
    vec.push_back(2);
    vec.push_back(3);

    // 3. 访问元素
    std::cout << "第一个元素: " << vec[0] << std::endl;
    std::cout << "第二个元素: " << vec.at(1) << std::endl;

    // 4. 获取大小
    std::cout << "Vector 大小: " << vec.size() << std::endl;

    // 5. 遍历元素
    std::cout << "遍历元素: ";
    for (int i : vec) {
        std::cout << i << " ";
    }
    std::cout << std::endl;

    // 使用迭代器遍历
    std::cout << "迭代器遍历: ";
    for (auto it = vec.begin(); it != vec.end(); ++it) {
        std::cout << *it << " ";
    }
    std::cout << std::endl;

    // 6. 删除元素
    vec.pop_back(); // 删除最后一个元素

    // 使用 erase 删除第一个元素
    vec.erase(vec.begin());

    // 显示删除后的元素
    std::cout << "删除元素后: ";
    for (int i : vec) {
        std::cout << i << " ";
    }
    std::cout << std::endl;

    // 7. 访问最后一个元素
    if (!vec.empty()) {
        std::cout << "最后一个元素: " << vec.back() << std::endl;
    }

    // 8. 清空 vector
    vec.clear();
    std::cout << "清空后的 vector 大小: " << vec.size() << std::endl;

    return 0;
}

在这段代码中,我演示了 std::vector 类的多种常用方法。代码首先展示了如何添加、访问和删除元素,然后展示了如何遍历 vector,包括使用范围基于的 for 循环和迭代器。最后,代码展示了如何使用 back() 方法访问最后一个元素,并如何使用 clear() 方法清空整个 vector。这些是你在使用 std::vector 时会经常遇到的操作。

.begin() 的用法

.begin()std::vector(以及其他标准模板库容器)中的一个成员函数,用于获取指向容器中第一个元素的迭代器。这个迭代器在多种情况下非常有用,特别是在需要遍历容器或者进行范围操作时。

  1. 遍历 Vector

    • 结合 .end().begin() 可以在基于迭代器的循环中使用,以遍历 vector 中的所有元素。
      for (auto it = vec.begin(); it != vec.end(); ++it) {
          std::cout << *it << " ";
      }
      
  2. 修改元素

    • 通过迭代器,可以直接修改 vector 中的元素。
      if (!vec.empty()) {
          *vec.begin() = 10; // 修改第一个元素
      }
      
  3. 删除元素

    • 使用 .erase() 方法和 .begin() 可以删除 vector 中的特定元素。
      vec.erase(vec.begin()); // 删除第一个元素
      
  4. 范围操作

    • .begin().end() 结合可以用于执行范围操作,如构造新容器或算法。
      std::vector<int> vec2(vec.begin(), vec.end()); // 使用范围构造新 vector
      

你可能感兴趣的:(C++,c++)