新闻中心

c++中vector的用法_C++动态数组容器vector使用教程

2025-11-15
浏览次数:
返回列表
vector是C++ STL中动态数组容器,需包含头文件,支持自动内存管理;可使用push_back添加、pop_back删除元素,通过size、empty、at等方法操作数据;推荐用范围for循环遍历;其内部连续存储并动态扩容,可通过reserve预分配内存提升性能。

c++中vector的用法_c++动态数组容器vector使用教程

vector 是 C++ 标准模板库(STL)中最常用的动态数组容器之一。它能自动管理内存,支持在运行时动态添加或删除元素,使用起来比普通数组更加灵活和安全。

1. 包含头文件并声明 vector

要使用 vector,必须包含对应的头文件:

#include

声明一个 vector 的基本语法如下:

std::vector vec; // 存储 int 类型的空 vector
std::vector values(5); // 初始化为 5 个元素,值为 0.0
std::vector names{"Alice", "Bob", "Charlie"}; // 使用初始化列表

2. 常用操作方法

vector 提供了丰富的成员函数来操作数据:

  • size():返回当前元素个数
  • empty():判断是否为空,返回 true 或 false
  • push_back(value):在末尾添加一个元素
  • pop_back():删除最后一个元素
  • at(i)[i]:访问索引 i 处的元素(at 会做越界检查)
  • clear():清空所有元素
  • resize(n):调整 vector 大小为 n
  • front()back():分别获取第一个和最后一个元素

示例代码:

Reachout.ai Reachout.ai

一个AI驱动的视频开发平台,专为忙碌的企业家和销售团队打造

Reachout.ai 142 查看详情 Reachout.ai std::vector nums;
nums.push_back(10);
nums.push_back(20);
nums.push_back(30);

for (int i = 0; i    std::cout }
// 输出:10 20 30

3. 遍历 vector

有多种方式可以遍历 vector:

  • 下标遍历:适合已知索引的情况
  • 范围 for 循环(推荐):
for (const auto& value : vec) {
   std::cout }
  • 迭代器遍历
for (auto it = vec.begin(); it != vec.end(); ++it) {
   std::cout }

4. 动态扩容机制

vector 内部使用连续内存存储元素,当容量不足时会自动重新分配更大的空间,并将原有数据复制过去。虽然这个过程对开发者透明,但频繁插入可能导致性能开销。可通过 reserve(n) 预先分配内存以提高效率:

vec.reserve(100); // 预留 100 个元素的空间

基本上就这些。vector 封装了动态数组的复杂性,让程序员可以专注于逻辑开发,而不必手动管理内存。熟练掌握它的常用操作,是写好 C++ 程序的基础。不复杂但容易忽略细节,比如越界访问或不必要的拷贝,使用时注意即可。

以上就是c++++中vector的用法_C++动态数组容器vector使用教程的详细内容,更多请关注其它相关文章!


# 中文网  # 企业营销推广套餐有哪些  # 网站建设与维护加班  # 辽源seo入门成功案例  # 咸宁线上营销推广方案  # 宝安舞蹈培训网站建设  # 保定品牌网站建设电话  # 网站seo排名优化软件推广方法  # seo2激光器输出波长  # 网站app优化排名  # 网店的推广服务营销策略  # 动态数组  # 相关文章  # 更大  # 第一个  # 如何实现  # 多线程  # 可通过  # 头文件  # 互斥  # 遍历  # c++ 


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


相关推荐: PyTorch模型训练准确率不提升:诊断与修复常见指标计算错误  在J*a中如何开发简易博客标签推荐系统_博客标签推荐项目实战解析  html怎么在cmd下运行php文件_cmd运行html中php文件方法【教程】  抖音极速版最新版本 抖音极速版官方下载地址  GemBox Document HTML转PDF垂直文本渲染问题及解决方案  UC浏览器如何安装插件 UC浏览器添加扩展程序详细教程【进阶】  PHP中SSG-WSG API的AES加密实践:正确使用初始化向量  期待已久:小米17 Ultra、小米首款NAS本月登场  在J*a中如何开发简易仓库管理与库存统计_仓库管理库存统计项目实战解析  Win11怎么安装Linux子系统 Win11 WSL2安装Ubuntu及环境配置指南  LINUX的perf命令入门_LINUX官方性能分析工具的使用与解读  sublime怎么格式化代码_sublime代码美化与一键排版插件配置  抖音未来赚钱的新趋势 2025年值得关注的变现风口分析  妖精动漫免费平台 妖精动漫官网资源观看网址  内存检查:在VS Code中调试C++时的内存视图  AO3网页版合集入口 Archive of Our Own同人作品浏览指南  漫蛙2漫画入口 漫蛙正版网页漫画直达网址  AO3最新官网入口公告_2025AO3镜像站实时查询方法  126邮箱网页版官方入口 126邮箱账号在线登录平台  2306选座时如何选靠窗位置_12306选座靠窗座位查看方法解析  Win11怎么合并任务栏图标 Win11开启任务栏合并减少图标占空间【方法】  漫蛙网页登录入口 漫蛙漫画官方授权网址  MinIO大规模对象列表性能瓶颈深度解析与外部元数据管理策略  J*a中实现Go语言select通道多路复用机制  一加 14R 快充无反应_一加 14R 充电优化  荣耀Play7TPro怎样在信息App置顶客服对话_iPhone荣耀Play7TPro信息App置顶客服对话【优先查看】  AO3官网镜像链接 Archive of Our Own同人文在线浏览  《主播少女的秘密账号迷宫》首支宣传片  1688商家版怎样分析买家画像精准供货_1688商家版分析买家画像精准供货【供货策略】  12306选座怎么选到商务座_12306商务座选择与配置说明  Python模块化编程:有效管理依赖与避免循环引用  c++中的const_cast和reinterpret_cast怎么用_c++四种类型转换  C++如何连接MySQL数据库_C++使用Connector/C++操作MySQL数据库教程  Golang如何优化内存分配与垃圾回收_Golang内存管理与GC优化实践  Golang如何实现Web接口签名验证_Golang Web接口签名校验开发方法  Lar*el递归关系中排除子孙节点的策略  移动端XML文件怎么转换成Excel 手机和平板上的解决方案  漫蛙漫画网页端入口 漫蛙2官方正版漫画站点  Safari浏览器输入栏卡顿如何解决 Safari搜索建议与缓存清理  TikTok国际版网页端快速入口 TikTok全球版短视频浏览教程  Tailwind CSS line-clamp 布局问题解析与修复指南  微信商城在哪里打开【步骤】  《噬血代码2》新预告片发布 展示游戏剧情  Angular响应式表单:实现提交后表单及按钮的禁用与只读化  Django模型中自动计算可用余额的实现方法  age动漫网站入口 age动漫官网直接访问入口  Excel如何用迷你图显趋势_Excel用迷你图显趋势【趋势小图】  Adobe PDF表单中利用J*aScript解析与格式化日期组件的教程  Windows10怎么开启存储感知 Windows10系统设置自动清理临时文件释放C盘空间【教程】  Spyder启动失败:字体文件权限拒绝错误解决方案 

搜索