新闻中心
C++ vector怎么用_C++ STL中动态数组vector的常见操作与用法
vector是C++ STL中的动态数组容器,需包含头文件;支持自动内存管理与动态增删元素;常用操作包括push_back、pop_back、size、at及迭代器遍历;示例显示其初始化、添加删除元素和范围for循环使用方法。

在C++中,vector 是 STL 提供的一个动态数组容器,可以自动管理内存,支持在运行时动态添加或删除元素。相比传统数组,vector 更安全、更灵活,是日常编程中最常用的容器之一。
1. 包含头文件与基本定义
使用 vector 需要包含头文件
using namespace std;
定义 vector 的常见方式:
-
vector
v; // 创建空的整型 vector -
vector
vd(5); // 创建包含 5 个 0.0 的 double 类型 vector -
vector
vi(3, 10); // 创建包含 3 个 10 的 vector:{10,10,10} -
vector
v2(vi); // 拷贝构造 -
vector
v3 = {1, 2, 3, 4}; // C++11 初始化列表
2. 常用操作函数
vector 提供了丰富的成员函数来操作数据:
添加元素:- v.push_back(x); // 在末尾插入元素 x
- v[i] // 访问第 i 个元素(不检查越界)
- v.at(i) // 访问第 i 个元素(越界会抛出异常)
- v.front() // 返回第一个元素
- v.back() // 返回最后一个元素
- v.pop_back(); // 删除最后一个元素
- v.clear(); // 清空所有元素
- v.erase(it); // 删除迭代器 it 指向的元素
- v.erase(begin, end); // 删除区间 [begin, end) 内的元素
- v.size(); // 当前元素个数
- v.empty(); // 判断是否为空,返回 true/false
- v.capacity(); // 当前分配的存储容量
- v.resize(n); // 改变大小为 n,多删少补(默认补 0)
- v.reserve(n); // 预分配至少 n 个元素的空间
3. 迭代器的使用
vector 支持使用迭代器遍历元素,这是 STL 容器的通用方式:
美图云修
商业级AI影像处理工具
50
查看详情
vectorfor (auto it = v.begin(); it != v.end(); ++it) {
cout }
也可使用范围 for 循环(C++11 起):
for (int x : v) {cout }
4. 实际使用示例
下面是一个简单例子,演示 vector 的基本操作:
#include iostream>#include
using namespace std;
int main() {
vector
nums.push_back(10);
nums.push_back(20);
nums.push_back(30);
cout cout for (int n : nums) {
cout }
cout
nums.pop_back();
cout for (int n : nums) {
cout }
return 0;
}
输出:
Size: 3Elements: 10 20 30
After pop_back: 10 20
基本上就这些。vector 封装了动态扩容逻辑,使用起来像数组但更强大。掌握 push_back、pop_back、size、at 和迭代器,就能应对大多数场景。注意避免在遍历时对 vector 进行插入或删除,以免迭代器失效。
以上就是C++ vector怎么用_C++ STL中动态数组vector的常见操作与用法的详细内容,更多请关注其它相关文章!
# 如何使用
# 天门湖南网站优化推广
# 湖北seo优化哪里好
# 关键词seo排名池云速捷明白
# 张家港网络营销推广方案
# 安丘网站关键词快速排名
# 保定淘宝网站推广好处
# 网站建设在哪里备案
# 什么属于seo
# 本地seo推广营销模式
# 韩文网站建设美丽
# 是一个
# 命令行
# 动态数组
# 或删除
# 头文件
# 整型
# 数据结构
# 遍历
# 美图
# 迭代
# stream
# ios
# c++
# ai
相关栏目:
【
科技资讯46185 】
【
网络学院92790 】
相关推荐:
在J*a项目里如何构建对象之间的契约_接口约束的实际落地
苹果手机如何防止被恶意App追踪
Lar*el Form Request中唯一性验证在更新操作中的正确实现
CSS实现侧边栏导航项全宽圆角悬停背景效果
Win11怎么修改默认浏览器_Windows 11设置Chrome为默认
在J*a中如何开发简易电子商务商品管理系统_商品管理系统项目实战解析
Go语言中动态执行代码字符串的策略与实践
Golang并发任务中错误如何聚合_Golang goroutine error收集方式
如何仅使用CSS更改登录界面背景图像图标的颜色
荣耀Play7T运行卡顿解决_荣耀Play7T性能优化
Win10自动更新怎么关闭 Win10永久关闭系统更新的两种方法【终极版】
React Router 嵌套组件中 URL 重定向问题的解决方案
一加 Nord 5 隐私权限异常_一加 Nord 5 系统安全优化
Python模块化编程:有效管理依赖与避免循环引用
海棠电脑版入口_通过电脑访问海棠官网阅读
将JSON对象数组转置为键值对列表的实用指南
Mac怎么锁定备忘录_Mac备忘录加密设置教程
支付宝如何设置安全保护_支付宝安全设置的全面教程
C++如何使用AddressSanitizer(ASan)_C++调试工具中检测内存访问错误的利器
Python异步编程实践:使用Binance API构建实时交易数据流
Win11怎么设置开机NumLock亮 Win11修改注册表InitialKeyboardIndicators值
sublime如何处理大型CSV文件的列对齐_sublime高级表格编辑插件指南
QQ邮箱网页版登录入口 QQ邮箱官方在线使用平台
C++如何比较两个字符串_C++ string compare函数与操作符对比
Angular响应式表单:实现提交后表单及按钮的禁用与只读化
蛙漫正版漫画平台入口_蛙漫免费阅读全站漫画资源
如何使用Go和Martini动态服务解码后的图片
Composer如何解决json扩展缺失的错误
Golang如何安装Swagger工具_GoSwagger文档生成环境
Python字典中优雅地迭代剩余元素的方法
css元素hover动画延迟生效怎么办_使用animation-delay调整触发时间
4399体育竞技小游戏_4399小游戏赛事入口
如何创建没有密码的Windows本地账户_跳过微软账户登录的技巧【教程】
LINQ to XML为何解析失败? 深入理解C# XDocument的异常处理
C++如何进行游戏物理模拟_使用Box2D库为C++游戏添加2D物理效果
WordPress插件开发:正确注册卸载钩子与避免常见陷阱
《马克思佩恩3》早期版本曝光 UI设计曾多次调整!
支付宝如何管理隐私设置_支付宝隐私保护的配置技巧
怎么在浏览器上运行HTML文件_浏览器运行HTML文件技巧【技巧】
Mac怎么使用表情符号_Mac Emoji快捷键面板
Win10双系统截图高效法 截屏快捷键速记【技巧】
怎么在mac上运行html代码_mac运行html代码方法【指南】
押井守高度称赞《辐射4》:玩了八年都停不下来!
提升Kafka消费者健壮性:会话超时处理与消息处理语义
mysql如何设置表访问权限_mysql表访问权限配置
uc浏览器网页版极速入口 uc网页浏览器网页版流畅体验
J*aScriptWebpack优化_J*aScript构建工具实战
win11开机启动修复循环怎么办 Win11无法进入系统高级启动解决方法【修复】
实现分段式页面滚动导航:CSS与J*aScript教程
钉钉视频会议声音异常如何处理 钉钉会议音频修复技巧


2025-11-24
浏览次数:次
返回列表