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

    你可能感兴趣的文章
    NYOJ-525 一道水题
    查看>>
    nyoj58 最少步数
    查看>>
    N皇后问题
    查看>>
    OAuth 2.0 MAC Tokens
    查看>>
    OAuth 及 移动端鉴权调研
    查看>>
    OAuth2 + Gateway统一认证一步步实现(公司项目能直接使用),密码模式&授权码模式
    查看>>
    OAuth2 Provider 项目常见问题解决方案
    查看>>
    OAuth2 vs JWT,到底怎么选?
    查看>>
    Vue.js 学习总结(14)—— Vue3 为什么推荐使用 ref 而不是 reactive
    查看>>
    oauth2-shiro 添加 redis 实现版本
    查看>>
    OAuth2.0_JWT令牌-生成令牌和校验令牌_Spring Security OAuth2.0认证授权---springcloud工作笔记148
    查看>>
    OAuth2.0_JWT令牌介绍_Spring Security OAuth2.0认证授权---springcloud工作笔记147
    查看>>
    OAuth2.0_介绍_Spring Security OAuth2.0认证授权---springcloud工作笔记137
    查看>>
    OAuth2.0_完善环境配置_把资源微服务客户端信息_授权码存入到数据库_Spring Security OAuth2.0认证授权---springcloud工作笔记149
    查看>>
    OAuth2.0_授权服务配置_Spring Security OAuth2.0认证授权---springcloud工作笔记140
    查看>>
    OAuth2.0_授权服务配置_三项内容_Spring Security OAuth2.0认证授权---springcloud工作笔记141
    查看>>
    OAuth2.0_授权服务配置_令牌服务和令牌端点配置_Spring Security OAuth2.0认证授权---springcloud工作笔记143
    查看>>
    OAuth2.0_授权服务配置_客户端详情配置_Spring Security OAuth2.0认证授权---springcloud工作笔记142
    查看>>
    OAuth2.0_授权服务配置_密码模式及其他模式_Spring Security OAuth2.0认证授权---springcloud工作笔记145
    查看>>
    OAuth2.0_授权服务配置_授权码模式_Spring Security OAuth2.0认证授权---springcloud工作笔记144
    查看>>