新闻中心

C++ vector容器怎么用_C++ vector常用操作与初始化步骤

2025-12-06
浏览次数:
返回列表
C++中的vector是动态数组,支持自动扩容,常用初始化包括默认、指定大小、初值、数组、列表等方式,提供push_back、pop_back、insert、erase等操作,可使用下标、at访问元素,支持size、empty、clear、resize等管理方法,并可通过下标循环、迭代器或范围for遍历。

c++ vector容器怎么用_c++ vector常用操作与初始化步骤

C++ 中的 vector 是一个动态数组,可以自动调整大小,使用非常灵活。它是 STL(标准模板库)中最常用的容器之一,适合存储和操作一组同类型的数据。下面介绍 vector 的常用初始化方式和基本操作,帮助快速上手。

vector 的初始化方法

vector 提供了多种初始化方式,适用于不同场景:

  • 默认初始化:创建一个空 vector
    std::vector<int> vec;</int>
  • 指定大小初始化:创建包含 n 个元素的 vector,元素值为默认值(如 0)
    std::vector<int> vec(5); // 包含 5 个 0</int>
  • 指定大小和初始值:
    std::vector<int> vec(5, 10); // 5 个元素,每个都是 10</int>
  • 用数组初始化:
    int arr[] = {1, 2, 3};<br>
        std::vector<int> vec(arr, arr + 3);
  • 用另一个 vector 初始化:
    std::vector<int> vec1 = {1, 2, 3};<br>
        std::vector<int> vec2(vec1);
  • 列表初始化(C++11 起):
    std::vector<int> vec = {1, 2, 3, 4, 5};</int>

vector 常用操作方法

vector 提供丰富的成员函数来管理数据,以下是一些最常用的操作:

  • 添加元素:
    vec.push_back(6); // 在末尾添加一个元素
  • 删除末尾元素:
    vec.pop_back(); // 移除最后一个元素,不返回值
  • 访问元素:
    vec[0] // 访问第一个元素,不检查越界
    vec.at(0) // 同样访问第一个元素,但会做越界检查,越界抛出异常
  • 获取大小:
    vec.size(); // 当前元素个数
    vec.empty(); // 判断是否为空,返回 true 或 false
  • 清空所有元素:
    vec.clear(); // 清空 vector,size 变为 0
  • 插入元素:
    vec.insert(vec.begin() + 1, 99); // 在第二个位置插入 99
  • 删除指定位置元素:
    vec.erase(vec.begin()); // 删除第一个元素
  • 容量相关:
    vec.capacity(); // 当前分配的存储空间能容纳多少元素
    vec.resize(10); // 改变 vector 大小,不足补默认值

遍历 vector 的方式

有多种方法可以遍历 vector 中的元素:

简小派 简小派

简小派是一款AI原生求职工具,通过简历优化、岗位匹配、项目生成、模拟面试与智能投递,全链路提升求职成功率,帮助普通人更快拿到更好的 offer。

简小派 123 查看详情 简小派
  • 使用下标循环:
    for (int i = 0; i < vec.size(); ++i) {<br>
          std::cout << vec[i] << " ";<br>
        }
  • 使用范围 for 循环(推荐):
    for (int x : vec) {<br>
          std::cout << x << " ";<br>
        }
  • 使用迭代器:
    for (auto it = vec.begin(); it != vec.end(); ++it) {<br>
          std::cout << *it << " ";<br>
        }

注意事项与建议

使用 vector 时注意以下几点:

  • 尽量使用 at() 替代 [] 进行调试,避免越界访问导致程序崩溃
  • 频繁插入删除中间元素会影响性能,因涉及元素移动
  • vector 的内存是自动管理的,不需要手动释放
  • 如果知道大致元素数量,可提前调用 reserve() 提升效率

基本上就这些。vector 使用简单又强大,掌握这些基本操作就能应对大多数编程需求。不复杂但容易忽略细节,比如 empty() 比 size() == 0 更高效,习惯后写代码更规范。

以上就是C++ vector容器怎么用_C++ vector常用操作与初始化步骤的详细内容,更多请关注其它相关文章!


# 都是  # 邯郸seo推广报价  # 湖北品质网站建设  # 抖音推广营销如何收费呢  # 农夫山泉一年营销推广费用  # 皇姑区网站建设包括  # 如何做彩票网站推广图  # 克州网站推广报价  # 渭南网站优化成本  # 网站优化的排名方案  # 许昌网站推广制作人才招聘  # c++  # 默认值  # 如何实现  # 清空  # 最常用  # 有什么区别  # 如何使用  # 尼克  # 遍历  # 第一个 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: LINUX下如何进行磁盘分区_fdisk与parted工具在LINUX中的使用对比  Fabric模组开发:自定义物品与物品组的现代管理方法  Web Components中自定义开关组件状态同步的常见陷阱与解决方案  千牛数据看板网页版_千牛数据看板网页版访问方法  聚水潭ERP登录页面入口 聚水潭ERP官网登录界面  一加Ace 6T实拍样张首次公布!李杰:主摄实力完全看齐4K档性能旗舰  豆包手机助手发布技术预览版:直接嵌入手机系统!努比亚样机发售  J*aScriptWebpack优化_J*aScript构建工具实战  css链接悬停下划线样式如何自定义_使用::after结合content和transition  Typer应用中动态命令行参数的解析与处理  Pyrogram与g4f集成:异步编程实践与常见错误解决  C++如何解决segmentation fault_C++段错误调试与原因分析  Golang如何实现状态模式管理对象状态_Golang State模式实现技巧  mc.js游戏直达 mc.js网页免下载版本秒进地址  不同用户不同价格! 索尼开启账户个性化定价测试  Win11网速慢怎么解决 Win11网络设置优化解除限速  学习通网页版快速入口 学习通官网网页版直接打开  PostgreSQL海量数据高效导入策略:Python与Django实践指南  React/Next.js中实现列表项的动态选择与移动  php源码怎么在电脑上测试_电脑测试php源码方法步骤【教程】  如何使用Node.js csv 包按条件移除含空字段的CSV记录  在Go开发中优雅管理ListenAndServe进程:GoSublime集成方案  怎样把文件彻底粉碎无法恢复_Windows下安全删除敏感数据【隐私保护】  电脑IP地址怎么查 查看本机IP地址的几种方法  “在文档元素之后找到了标记”是什么错误? 检查并修复XML中多个根元素的3个方法  Python自定义类排序:解决lambda键值访问TypeError的实践指南  小米汽车11月交付量突破40000台!雷军:将继续努力  CSS Grid如何控制元素对齐_align-items与justify-items组合使用  QQ邮箱官方邮箱登录入口 QQ邮箱网页版快速访问  铁路12306卧铺选择攻略 铁路12306下铺座位预定技巧  高德地图怎么看全景照片_高德地图全景照片浏览教程  虫虫漫画精品漫画官网_虫虫漫画精品漫画官网进入精品漫画  Kafka Streams中基于消息头条件过滤消息的实现指南  Win11怎么关闭触摸屏_Windows 11禁用HID符合标准触摸屏  Yandex浏览器官方网页版入口 Yandex浏览器最新版官网  Win11怎么用U盘重装系统 Win11制作启动盘并重装系统完整教程【详解】  谷歌浏览器如何快速清除某个网站的数据_Chrome网站缓存清理方法  CSS Flexbox如何实现多行排列_flex-wrap wrap自动换行显示  Angular中单选按钮的正确使用与常见陷阱解析  谷歌浏览器一键优化方案_谷歌浏览器直达主页极速不卡版  机器学习中对数变换预测结果的反向还原  b站赚钱渠道_b站收益来源  支付宝如何管理隐私设置_支付宝隐私保护的配置技巧  在VS Code中配置和运行Dart程序的完整步骤  漫蛙漫画官方主页入口 漫蛙MANWA网页直达访问链接  Adobe PDF表单中利用J*aScript解析与格式化日期组件的教程  随机参数递归函数的基准调用次数与时间复杂度探究  Golang如何使用const iota_Go iota常量计数器讲解  mcjs网页版流畅运行 mcjs低配电脑畅玩入口  J*a里如何使用forEach遍历Map_Map遍历方法说明 

搜索