• 博客
  • 音乐
  • 随想
  • 足迹
  • 关于
  • 个人空间
    • 登录
animals
    bg
    std::vector
    所属分类:c++
    发布时间:2025-05-19 10:03

    std::vector

    std::vector是c++标准库(STL)中最常用的序列化容器之一,它提供动态且连续的数组功能,能够自动管理内存并在运行时动态调整大小

    基本特性

    • 动态数组:底层实现为动态分配的连续的内存空间
    • 随机访问:支持通过下标快速访问元素
    • 自动扩容:当容量不足时自动重新分配更大的内存空间
    • 类型安全:模板类,存储单一类型的元素

    基本用法

    头文件

    #include <vector>
    

    声明和初始化

    std::vector<int> v1; // 空vector
    std::vector<int> v2(5); // 5个元素,默认值为0
    std::vector<int> v3(5, 10); // 5个元素,每个初始化为10
    std::vector<int> v4 = { 1, 2, 3 }; // 初始化列表
    std::vector<int> v5(v4) // 拷贝构造
    

    常用操作

    访问元素

    v[0] = 10; // 通过下标访问,不检查边界,越界直接段错误
    int a = v.at(1); // 通过at访问,会检查越界,越界会抛出异常,可以通过try catch接异常
    int first = v.font(); // 访问第一个元素
    int last = v.back(); // 访问最后一个元素
    

    容量操作

    v.empty();
    v.size();
    v.capacity();
    v.reserve(100);
    v.shrink_to_fit();
    

    修改操作

    v.push_back(1);
    v.pop_back();
    v.insert(v.begin() + 1, 2);
    v.erase(v.begin() + 1);
    v.clear();
    

    迭代器

    for (auto iter = v.begin(); iter != v.end(); ++iter) {
    
    }
    
    for (auto iter = v.rbegin(); iter != v.rend(); ++iter) {
    
    }
    
    for (int num : v) {
    
    }