恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

【C++】vector

  • 首页
  • 资讯中心
  • /
  • 【C++】vector

相关资讯

AI赋能CTF实战:构建智能解密工具的设计思路与核心实现 2026/8/3 2:27:31
Oracle PL/SQL从入门到实战:环境搭建、核心语法与性能优化指南 2026/8/3 2:27:31
Android应用启动优化实战:从冷热启动原理到性能提升方案 2026/8/3 2:27:31

最新资讯

Unity游戏本地化实战:XUnity.AutoTranslator自动化翻译插件配置与优化指南
从斗兽场到现代擂台:拳击规则与场地的文明化演变
Qt 5.15.2 开发环境搭建全攻略:从版本选择到避坑指南
PMU530:四位一体智能终端在新型电力系统感知层的应用与实战
电商项目开发day8
MMC电压源换流器控制技术解析与应用

今日推荐

无线一体式手持三维扫描仪推荐:摆脱电脑束缚的工业检测新选择
3个让你工作效率翻倍的Umi-OCR实战技巧:免费离线文字识别完全指南
[具身智能-181]:PC+服务器+具身机器人:构建具身智能从仿真到量产的闭环迭代混合架构

本周热门

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案
分布式配置中心选型实战:Nacos与Consul在创业场景下的对比
MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

【C++】vector

发布时间:2026/8/3 2:32:31
【C++】vector vector 内部六大核心类型别名value_type定义容器存放的原始元素类型作用 通用模板编程时不知道容器元素类型用它代表元素。// value_type 容器存储的容器类型 /*vectorint::value_type num 100; cout value_type : num endl;*/reference / const_referencereference等价于 value_type普通左值引用可读可改容器元素。//reference :元素左值引用 int //vec.push_back(1); //vectorint::reference ref vec[0]; //ref 200; //cout reference修改后元素 vec[0] endl;const_reference等价于 const value_type常量只读引用只能读取禁止修改。]//const_reference: 只读引用 const int //vec.push_back(1); //vectorint::const_reference cref vec[0]; ///*cref 100;*/ //编译报错 ,只读引用 不能修改 //cout 只读引用 const_reference : cref endl;使用场景函数返回容器元素引用返回 reference 允许外部修改返回 const_reference 保护容器数据只读。size_type用途---》表示容器元素个数、容量、下标索引。底层类型--无符号整数本质是 size_tunsigned 类型// size_type 无符号整数存容量个数 //vec.push_back(1); //vec.push_back(2); //vec.push_back(3); //vec.push_back(4); //vectorint::size_type cnt vec.size(); //cout size_type类型元素个数 cnt endl;difference_type底层类型--有符号整数 ptrdiff_tsigned 类型用途--专门存两个迭代器之间的差值迭代器相减的返回值类型为啥用 有符号 difference_type--迭代器可以前减后得到负数反向距离无符号 size_t 存不了负数//difference_type : 有符号整数迭代器差值 //vec.push_back(985); //vec.push_back(211); //auto it1 vec.begin(); //auto it2 vec.end(); //cout difference_type迭代器距离 it2 - it1 endl;iterator /const_iterator迭代器iterator读写迭代器普通可修改迭代器指向容器元素支持读写。//普通读写迭代器 iterator //vec.push_back(1); //vectorint::iterator it vec.begin(); //*it 985; //cout iterator修改后 *it endl;const_iterator只读迭代器常量迭代器只能读取元素不能修改内容。//只读迭代器 const_iterator //vec.push_back(1); //vectorint::const_iterator cit vec.begin(); ///**cit 211;*/ //编译报错 只读迭代器只能读不能修改 //cout *cit endl;begin() 返回 iterator / cbegin() 返回 const_iterator构造默认构造语法容器类型 变量名;创建空 vector没有任何元素.empty() 返回 true输出 1• size 0不能直接用 c1[0] 访问越界崩溃。适用场景先创建空容器后续再 push_back 添加数据。//默认构造 /*vectorintv1; v1.push_back(1); cout 默认构造,是否为空 boolalpha v1.empty() endl;*/拷贝构造语法C c(另一个同类型容器)--把已经存在的容器拷贝给新创建的容器//拷贝构造 C c2(c1) //vectorintc2{ 10,20,30 }; //vectorintc3(c2); //for (auto v : c3) //{ // cout v ; // /*}*/区间构造语法C c(起始迭代器, 末尾迭代器)拷贝 [begin, end) 区间内的元素左闭右开不限制必须是同一个 vector可以拷贝数组、其他容器的一段//区间构造 C (c,e) /*vectorintc2{ 10,20,30 }; vectorintc3(c2.begin(), c2.end()); cout 容器c3的首元素 c3[0] endl;*/列表初始化C11 及以后支持的初始化列表语法• 直接传入一组元素自动创建 vector 并存入• 下标从 0 开始c5 [0]1c5 [1]3c5 [2]5c5 [3]7• 也可写成 vectorint c5 {1,3,5,7};//列表初始化 C c{a,b,c,d,e,f} vectorintv1{ 1,2,3,4,5,6,7 }; cout 列表初始化第4个元素 v1[3] endl;补充vector 三大核心知识点深拷贝深拷贝包括拷贝构造 / 区间构造赋值运算符也是深拷贝 c1c2核心原理vector 的拷贝构造、区间拷贝都会分配全新堆内存新容器与原容器数据完全独立修改其中一个不会影响另一个。//深拷贝--开辟独立内存 vectorintv1 { 10,20,30,40,50 }; vectorintv2(v1); v2[0] 985; cout v2[0] v2[0] endl; //985 cout v1[0]: v1[0] endl; // 输出10,原容器数据不受影响下标访问 [] 越界风险关键特性:vector::operator[] 不做边界检查编译阶段不会报错运行时访问超出 size () 的下标直接越界访问非法内存程序崩溃 / 乱码。安全写法先扩容存入元素再访问下标带边界检查的安全访问at() 函数越界会抛出 out_of_range 异常//operator [] 下标访问 不检查会造成越界程序崩溃 vectorintv1 { 1,2,3,4,5 }; vectorint::iterator res v1.begin(); cout res[0] endl; /*cout res[10] endl;*/ // 程序崩溃 //避免程序崩溃的两种方法 //方法1先扩容存入元素再访问下标 vectorintv2; v2.push_back(10); cout v2[0] endl; //方法2带边界检查的安全访问 at函数 cout v2.at(0) endl;拷贝构造 vs 引用核心区分记忆不带 创建全新容器深拷贝带 只是原容器别名不分配新内存

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号