• C++——如何正确的使用STL中的vector?


    什么是vector

    在STL(标准模板库)中,vector是一种动态数组容器,可根据需要自动增长或缩小。它可以存储任意类型的元素,并且支持快速的随机访问。

    1. vector是表示可变大小数组的序列容器
    2. vector采用的是连续的存储空间来存储元素,类似于数组,但是它的大小是可以被容器自动的动态改变
    3. vector使用动态分配数组来存储它的元素
    4. vector会分配一些额外的空间以适应可能的增长,因为存储空间比实际需要的存储空间更大
    5. 与其它动态序列容器相比,vector在访问元素的时候效率更高,在末尾添加和删除元素更加高效

    vector如何使用

    构造函数的使用

    构造函数声明接口说明
    vector无参构造
    vector(size_type n,const value_type& val=value_type())构造并初始化n个val
    vector(const vector& x)拷贝构造
    vector(InputIterator first,InputIterator last);使用迭代器进行初始化构造

    iterator的使用

    iterator的使用接口说明
    begin+end获取第一个数据位置的iterator/const_iterator,获取最后一个数据的下一个位置的iterator/const_iterator
    rbegin+rend获取最后一个数据位置的reverse_iterator,获取第一个数据前一个位置的reverse_iterator

    在这里插入图片描述
    在这里插入图片描述

    空间增长问题

    空间容量接口说明
    size获取数据个数
    capacity获取容量大小
    empty判断是否为空
    resize改变vector的size
    reserve改变vector的capacity

    增删查改

    vector增删查改接口说明
    push_back尾部插入一个数据
    pop_back尾部删除一个数据
    find查找
    insert在position之前插入val
    erase删除position位置的数据
    swap交换两个vector的数据空间
    operator[]像数据一样访问

    结构图

    capacity()——表示空间的存储容量
    size()——表示空间的大小
    start——表示指向数据块的起始位置
    finish——表示指向有效数据的尾部
    end_of_storage——表示指向存储空间的尾部

    在这里插入图片描述

  • 相关阅读:
    K8S | Config应用配置
    TensorFlow训练大模型做AI绘图,需要多少的GPU算力支撑
    moea中return, risk的计算
    Mybatis学习笔记1 Mybatis入门
    如何实现条件组合组件
    ansible角色运行指定角色路径
    Go指针探秘:深入理解内存与安全性
    动手从0实现 softmax 回归
    jvm初识
    操作系统考研笔记
  • 原文地址:https://blog.csdn.net/weixin_51799303/article/details/133221231