博客
关于我
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/

    你可能感兴趣的文章
    Node-RED中连接Mysql数据库并实现增删改查的操作
    查看>>
    Node-RED中通过node-red-ui-webcam节点实现访问摄像头并截取照片预览
    查看>>
    Node-RED中配置周期性执行、指定时间阶段执行、指定时间执行事件
    查看>>
    Node-RED安装图形化节点dashboard实现订阅mqtt主题并在仪表盘中显示温度
    查看>>
    Node-RED怎样导出导入流程为json文件
    查看>>
    Node-RED订阅MQTT主题并调试数据
    查看>>
    Node-RED通过npm安装的方式对应卸载
    查看>>
    node-request模块
    查看>>
    node-static 任意文件读取漏洞复现(CVE-2023-26111)
    查看>>
    Node.js 8 中的 util.promisify的详解
    查看>>
    node.js debug在webstrom工具
    查看>>
    Node.js HTTP模块详解:创建服务器、响应请求与客户端请求
    查看>>
    Node.js RESTful API如何使用?
    查看>>
    node.js url模块
    查看>>
    Node.js Web 模块的各种用法和常见场景
    查看>>
    Node.js 之 log4js 完全讲解
    查看>>
    Node.js 函数是什么样的?
    查看>>
    Node.js 函数计算如何突破启动瓶颈,优化启动速度
    查看>>
    Node.js 切近实战(七) 之Excel在线(文件&文件组)
    查看>>
    node.js 初体验
    查看>>