新闻中心
C++ vector容器怎么用_C++ vector常用操作与初始化步骤
C++中的vector是动态数组,支持自动扩容,常用初始化包括默认、指定大小、初值、数组、列表等方式,提供push_back、pop_back、insert、erase等操作,可使用下标、at访问元素,支持size、empty、clear、resize等管理方法,并可通过下标循环、迭代器或范围for遍历。

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遍历方法说明


2025-12-06
浏览次数:次
返回列表