新闻中心

C++ vector怎么用_C++ STL中动态数组vector的常见操作与用法

2025-11-24
浏览次数:
返回列表
vector是C++ STL中的动态数组容器,需包含头文件;支持自动内存管理与动态增删元素;常用操作包括push_back、pop_back、size、at及迭代器遍历;示例显示其初始化、添加删除元素和范围for循环使用方法。

c++ vector怎么用_c++ stl中动态数组vector的常见操作与用法

在C++中,vector 是 STL 提供的一个动态数组容器,可以自动管理内存,支持在运行时动态添加或删除元素。相比传统数组,vector 更安全、更灵活,是日常编程中最常用的容器之一。

1. 包含头文件与基本定义

使用 vector 需要包含头文件 ,并使用 std 命名空间:

#include
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 查看详情 美图云修 vector v = {1, 2, 3, 4, 5};
for (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;
  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: 3
Elements: 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教程  钉钉视频会议声音异常如何处理 钉钉会议音频修复技巧 

搜索