博客
关于我
stl序列式容器——vector
阅读量:552 次
发布时间:2019-03-09

本文共 1255 字,大约阅读时间需要 4 分钟。

STL序列式容器——Vector

简单介绍

vector是STL中最简单的序列式容器,定义在 <vector> 头文件中。它支持随机访问元素,类似于动态数组,同时拥有高效的迭代器支持,特别适用于频繁删除或随机访问元素的场景。此外,vector可以实现队列、数组和堆栈等数据结构的功能。

向量的定义

定义一个向量的方式如下:

#include 
using namespace std;vector
myvt;

向量的初始化

向量通过 push_back() 方法添加元素。例如:

myvt.push_back("something");

变量的容量管理

  • size() 返回当前元素数量。
  • capacity() 返回向量能容纳的最大元素数量。
  • max_size() 返回沿用最优率分配所能拥有的最大容量。
  • reserve() 预留给容器的空间。
  • resize()动态调整向量的大小。

向量的成员函数

向量包含丰富的成员函数,支持高效操作:

判断向量是否为空

使用 empty() 方法检查向量是否为空:

while (!myvt.empty()) {    // 内容}

遍历向量

支持两种遍历方式:

  • 迭代器方法:
  • vector
    vt;for (auto iter = vt.begin(); iter != vt.end(); ++iter) { // 类型处理}
    1. 使用常用函数 at(), front()back() 来访问元素。
    2. 高级编程功能

      向量支持多种高级操作:

      元素的访问

      • 使用 at() 定位元素,如 myvt.at(0)
      • 使用 [] 操作符直接访问。
      • 通过 front() 获取第一个元素,back() 获取最后一个元素。

      迭代器操作

      • 使用 begin()end() 获取起始和末尾迭代器。
      • 使用 rbegin()rend() 获取逆向迭代器。

      元素查找

      • 使用 find() 方法查找元素位置。
      • 使用自定义谓词与 find_if() 组合进行复杂查找。

      元素操作

      • 增添元素:push_back()insert()(支持任意位置插入)。
      • 删除元素:pop_back()erase()(支持任意位置删除)。-션操作:clear()清空,同时还可以使用swap()交换向量内容。

      关于 vector<bool> 的特殊处理

      vector<bool> 提供了优化的内存布局,以更高效地存储布尔值。

      总体操作流程

      从上述介绍可以看出,向量的使用步骤如下:

    3. 定义并声明向量。
    4. 使用 push_back() 向量中添加元素。
    5. 调用相关的成员方法(如 reserve(), size(), clear() 等)管理容量和数据。
    6. 通过迭代器或直接访问方法遍历向量元素。
    7. 使用高级算法处理向量数据,如排序、查找、插入和删除操作。
    8. 通过合理使用 vector,开发者可以充分发挥其高效的容器特性和灵活的操作能力。

    转载地址:http://ttzsz.baihongyu.com/

    你可能感兴趣的文章
    PostgreSQL 服务启动后停止
    查看>>
    PostgreSQL 辟谣存在任意代码执行漏洞:消息不实
    查看>>
    PostgreSQL+PostGIS实现两坐标点之间最短路径查询算法函数(地图工具篇.12)
    查看>>
    Qt开发——简易调色板QPalette
    查看>>
    PostgreSQL-解决连接时遇到的乱码问题
    查看>>
    PostgreSQL15.2最新版本安装_远程连接_Navicat操作_pgAdmin操作_Windows10上安装---PostgreSQL工作笔记001
    查看>>
    PostgreSQL9.1 双机部署配置(主备数据同步)
    查看>>
    Qt开发——简易网络浏览器(一)
    查看>>
    Qt开发——简易成绩登记系统
    查看>>
    Postgresql中PL/pgSQL代码块的语法与使用-声明与赋值、IF语句、CASE语句、循环语句
    查看>>
    Postgresql中PL/pgSQL的游标、自定义函数、存储过程的使用
    查看>>
    SpringBoot中集成XXL-JOB分布式任务调度平台,轻量级、低侵入实现定时任务
    查看>>
    Postgresql中的表结构和数据同步/数据传输到Mysql
    查看>>
    Postgresql中自增主键序列的使用以及数据传输时提示:错误:关系“xxx_xx_xx_seq“不存在
    查看>>
    SpringBoot中集成websocket后WebSocketServer中注入mapper为空
    查看>>
    postgreSQL入门命令
    查看>>
    PostgreSQL删除数据库报"ERROR: There is 1 other session using the database."
    查看>>
    Qt开发——爱情公寓人事管理系统
    查看>>
    Qt开发——文件下载软件
    查看>>
    PostgreSQL和Oracle两种数据库有啥区别?如何选择?
    查看>>