• 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——表示指向存储空间的尾部

    在这里插入图片描述

  • 相关阅读:
    Java 中那些绕不开的内置接口 -- Comparable 和 Comparator
    常用的特征分析和特征工程
    技术分享 | 代码覆盖率集成
    基于nodejs+vue美食外卖推荐网站系统源码
    ArangoDB 学习笔记(四)
    随笔-那些快乐的日子
    buuctf web 前5题
    Symfony多语言支持实现指南:打造国际化Web应用
    【pen200-lab】10.11.1.10
    TI Sitara系列 AM64x开发板——TSN通信测试手册(上)
  • 原文地址:https://blog.csdn.net/weixin_51799303/article/details/133221231