当前位置: 首页 > article >正文

【C++修仙录02】筑基篇:vector 使用

嗨~大家好这里是春栀怡铃声的博客~“做你害怕的事然后发现不过如此~”目录创建vector遍历方法迭代器reserve 扩容resize 对size 进行改变 会加值会减值insertsizecapacityemptypush_backeraseswapclear创建vectorvectorintv2(10, 2); vectorint v1; vectorintv3(v2.begin(), --v2.end()); //迭代器创建遍历方法范围for由2部分组成冒号前面是范围内用于迭代的变量第二变量则表示被迭代的范围自动读取数据自动结束vectorintv3(10,2); for (auto e : v3) { cout e ; } cout endl;下标访问//下标访问 for (size_t i 0; i v3.size(); i) { cout v3[i] ; } cout endl;迭代器vector 的迭代器可以理解成“指向元素的通用指针”用来遍历和操作容器里的元素。常用接口vectorint v (10,2);auto it v.begin(); // 指向第一个元素auto ed v.end(); // 指向最后一个元素的后一个位置遍历for (auto it v.begin(); it ! v.end(); it) {cout *it ;}常见特性- *it 取值- it 前进- it n、it - n因为 vector 的迭代器是随机访问迭代器- it1 it2可比较位置先后- it[n]等价于 *(it n)只读迭代器vectorint::const_iterator cit v.cbegin();const_iterator 不能修改元素。反向迭代器for (auto it v.rbegin(); it ! v.rend(); it) { std::cout *it ; }迭代器遍历//迭代器遍历 vectorint::iterator it v3.begin(); //auto itv3.begin(); while (it ! v3.end()) { cout *it ; it; } cout endl;reserve 扩容提前开好空间像下面的示例创建了string 类 的tmp 想让tmp 拥有和s1一样大的空间存放数据使用reserve 开出空间a. reserve(n) ncapacity在vector 中明确不会缩容在string (gcc) 会缩容,string(vs.2022) 不会缩容vectorintv(10, 2); v.reserve(5); cout v.size() endl; cout v.capacity() endl; v.reserve(20); cout v.size() endl; cout v.capacity() endl;初始有效数据有10个空间大小也为10第一次reserve(5) 510 ,无需扩容并且不会缩小空间大小 空间大小和有效数据都不变第二次reserve(20) 需要扩容空间大小变为20有效数据不变resize 对size 进行改变 会加值会减值vectorintv(10, 2); v.resize(5); cout v.size() endl; cout v.capacity() endl; v.resize(15,6); cout v.size() endl; cout v.capacity() endl; v.resize(20, 3); cout v.size() endl; cout v.capacity() endl;初始位置有效数据有10个空间大小为10经过第一次resize(5) 有效数据缩减到5空间大小不变第二次resize(15,6) 有效数据加到15空间也扩大到15新增的有效数据都是6第三次 resize(20,3) 有效数据加到20空间扩容到22 新增的有效数据都是3insertinsert 只能传迭代器第一个参数代表指向位置插入第二个参数代表插入的值void text_vector5() { vectorintv(10, 2); v.insert(v.begin(), 4); v.insert(v.begin() 3, 6); //可以通过迭代器加来进行随机位置插入 for (auto e : v) { cout e ; } cout endl; }size返回的是v1的有效数据个数使用v1.size();capacity返回的是v1的空间大小v1.capacity();empty返回v1是否为空的判断值是空返回true ,不是空返回falsepush_back使用push_back 在v1末尾插入vectorintv1; v1.push_back(5);eraseerase 只能传迭代器一种用法是直接删除传入迭代器指向的位置的值另一种是删除第一个迭代器到第二个迭代器的范围中的值vectorintv1(10,2); v1.erase(v1.begin()); for (auto e : v1) { cout e ; } cout endl; v1.erase(--v1.end()); for (auto e : v1) { cout e ; } cout endl;swap• vector 的 swap 用来交换两个 vector 的内容时间复杂度通常是 O(1)。用法#include iostream #include vector using namespace std; int main() { vectorint a {1, 2, 3}; vectorint b {4, 5}; a.swap(b); for (int x : a) cout x ; // 4 5 cout endl; for (int x : b) cout x ; // 1 2 3 cout endl; }交换后- a 变成原来 b 的内容- b 变成原来 a 的内容包括- 元素内容- size()- capacity()clear只删除v1中的数据v1的空间大小不变

相关文章:

【C++修仙录02】筑基篇:vector 使用

嗨~大家好,这里是春栀怡铃声的博客~ “做你害怕的事,然后发现,不过如此~” 目录 创建vector 遍历方法 迭代器 reserve 扩容 resize 对size 进行改变 会加值,会减值 insert size capacity empty push_back erase swap c…...

VMnet8 的8到底是什么意思?

它的本质是:8 仅仅是一个 内部标识符 (Internal Identifier) 或 数组索引 (Array Index),用于在 VMware 的虚拟化网络栈中唯一标识 NAT 模式 对应的虚拟交换机实例。它没有任何数学、物理或协议层面的特殊含义(如端口号、版本号或二进制位&am…...

通过用量看板清晰观测Taotoken的API调用成本与消耗

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 通过用量看板清晰观测Taotoken的API调用成本与消耗 对于将大模型能力集成到产品中的团队而言,API调用成本是项目预算与…...

摄影老司机_给照片加边框工具

使用简单, 支持自定义主题 自定义logo 内置四个常用的logo 为什么没有佳能? 因为我没有佳能 外框和内框是什么意思? 外框就是纯色边框 内框,就是将你上传的照片复制一张,放大,作为外框 外框宽度可以自定义 摄影师署名自定义 相机型号有时候识别出来又臭又长,说的就是尼康,所以…...

如何在Windows上轻松查看和转换iPhone HEIF图片:HEIF实用工具指南

如何在Windows上轻松查看和转换iPhone HEIF图片:HEIF实用工具指南 【免费下载链接】HEIF-Utility HEIF Utility - View/Convert Apple HEIF images on Windows. 项目地址: https://gitcode.com/gh_mirrors/he/HEIF-Utility HEIF Utility是一款专为Windows用户…...

终极指南:5步精通开源网页版三国杀无名杀

终极指南:5步精通开源网页版三国杀无名杀 【免费下载链接】noname 项目地址: https://gitcode.com/GitHub_Trending/no/noname 想要随时随地畅玩经典的三国杀卡牌游戏吗?无名杀作为当前最受欢迎的开源网页版三国杀,让你无需下载客户端…...

洛谷-【动态规划1】动态规划的引入4

P1077 [NOIP 2012 普及组] 摆花题目描述小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共 m 盆。通过调查顾客的喜好,小明列出了顾客最喜欢的 n 种花,从 1 到 n 标号。为了在门口展出更多种花&#xff0c…...

Noto字体:全球文字系统统一渲染的技术架构与实践指南

Noto字体:全球文字系统统一渲染的技术架构与实践指南 【免费下载链接】noto-fonts Noto fonts, except for CJK and emoji 项目地址: https://gitcode.com/gh_mirrors/no/noto-fonts 技术价值摘要 字符集完整性保障:Noto字体实现了对Unicode 6.…...

C语言--day19

第十章 内存管理当./a.out 运行起来后,系统会给a.out分配一段内存区域1、code ,存放编写好的c语言代码。 只读特性,在运行期间不能修改2、data 数据段。 存储全局变量,和被static 修改的变量细分:data 数据段&#xff…...

Linux 软链接和硬链接详解:ln 命令背后的 inode 原理

Linux 软链接和硬链接详解:ln 命令背后的 inode 原理 1. 前言 Linux 中经常会看到链接文件,例如: /bin -> /usr/bin python -> python3 current -> /opt/app/releases/v2Linux 链接主要有两种: 软链接:symbol…...

实战指南:Happy Island Designer 的深度应用与优化

实战指南:Happy Island Designer 的深度应用与优化 【免费下载链接】HappyIslandDesigner "Happy Island Designer (Alpha)",是一个在线工具,它允许用户设计和定制自己的岛屿。这个工具是受游戏《动物森友会》(Animal Crossing)启发…...

Safe Exam Browser 虚拟化检测绕过技术深度实践

Safe Exam Browser 虚拟化检测绕过技术深度实践 【免费下载链接】safe-exam-browser-bypass A VM and display detection bypass for SEB. 项目地址: https://gitcode.com/gh_mirrors/sa/safe-exam-browser-bypass 在现代教育技术领域,Safe Exam Browser&…...

《Java 100 天进阶之路》第32篇:Java常用工具类(Objects、Collections、Arrays深入)

第32篇:Java常用工具类(Objects、Collections、Arrays深入) 📌 系列导航:《Java 100 天进阶之路》完整目录 | ⬅️ 上一篇:第31篇:Java数组详解 | ➡️ 下一篇:第33篇:Ja…...

初创团队如何借助Taotoken以低成本快速验证AI产品创意

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 初创团队如何借助Taotoken以低成本快速验证AI产品创意 对于资源有限的初创团队而言,验证一个AI产品创意的核心挑战往往…...

10分钟掌握D3KeyHelper:告别手酸,暗黑3游戏效率翻倍的终极指南

10分钟掌握D3KeyHelper:告别手酸,暗黑3游戏效率翻倍的终极指南 【免费下载链接】D3keyHelper D3KeyHelper是一个有图形界面,可自定义配置的暗黑3鼠标宏工具。 项目地址: https://gitcode.com/gh_mirrors/d3/D3keyHelper 你是否曾在《暗…...

3分钟学会:如何在浏览器中零服务器依赖将HTML转为Word文档

3分钟学会:如何在浏览器中零服务器依赖将HTML转为Word文档 【免费下载链接】html-docx-js Converts HTML documents to DOCX in the browser 项目地址: https://gitcode.com/gh_mirrors/ht/html-docx-js 还在为HTML内容导出Word文档而烦恼吗?html…...

024、NPU指令集架构(ISA)概述:从CISC到VLIW

024、NPU指令集架构(ISA)概述:从CISC到VLIW 去年冬天调试一块国产NPU芯片的卷积算子,跑ResNet-50前向推理,死活比理论算力低了一个数量级。抓了三天波形,最后发现是指令发射槽的冲突——两条MAC指令争同一个数据总线,硬件自动插入三个空泡周期。那一刻我盯着逻辑分析仪…...

RedisDesktopManager Windows版:3分钟掌握免费Redis可视化工具,告别命令行操作!

RedisDesktopManager Windows版:3分钟掌握免费Redis可视化工具,告别命令行操作! 【免费下载链接】RedisDesktopManager-Windows RedisDesktopManager Windows版本 项目地址: https://gitcode.com/gh_mirrors/re/RedisDesktopManager-Window…...

Android Compose 图层的合成 : BlendMode

1. 图形的合成是什么 ? Compose中,图层的合成,通过BlendMode来控制 “显示谁、保留哪部分”,常用于裁剪、遮罩、图层叠加。 1.1 初始界面 Preview Composable fun MyBlendModeTest() {Box {Box(Modifier.size(100.dp).background(Color.R…...

023、深度可分离卷积:MobileNet背后的计算优化

深度可分离卷积:MobileNet背后的计算优化 一个让我加了两天班的bug 去年调试一块基于Cortex-M7的AI推理引擎,跑MobileNetV1时发现推理速度比理论计算慢了整整一个数量级。当时我盯着逻辑分析仪上的波形,CPU在卷积层卡了将近300ms——这不对劲,理论计算应该只要30ms。 排…...

Apple Silicon Mac 电池管理的终极解决方案:Battery Toolkit 完整指南

Apple Silicon Mac 电池管理的终极解决方案:Battery Toolkit 完整指南 【免费下载链接】Battery-Toolkit Control the platform power state of your Apple Silicon Mac. 项目地址: https://gitcode.com/gh_mirrors/ba/Battery-Toolkit 在当今移动办公时代&a…...

免费岛屿设计终极指南:5分钟快速掌握Happy Island Designer

免费岛屿设计终极指南:5分钟快速掌握Happy Island Designer 【免费下载链接】HappyIslandDesigner "Happy Island Designer (Alpha)",是一个在线工具,它允许用户设计和定制自己的岛屿。这个工具是受游戏《动物森友会》(Animal Cros…...

QQ群数据采集终极教程:5分钟掌握批量抓取技巧

QQ群数据采集终极教程:5分钟掌握批量抓取技巧 【免费下载链接】QQ-Groups-Spider QQ Groups Spider(QQ 群爬虫) 项目地址: https://gitcode.com/gh_mirrors/qq/QQ-Groups-Spider 还在为手动收集QQ群信息而烦恼吗?QQ-Groups…...

Python爬虫避坑手册:10年爬取经验总结,看完再也不会被封IP

做爬虫这么多年,我见过太多新手从入门到放弃,不是因为学不会Python,而是被各种反爬机制虐得怀疑人生。 我刚入行的时候,写的第一个爬虫是爬某电商网站的商品价格。当时觉得爬虫不就是发个请求,解析个HTML吗?结果代码刚跑了5分钟,IP就被封了。我当时还傻乎乎地重启路由器…...

抖音批量下载工具:高效获取用户主页全作品的专业解决方案

抖音批量下载工具:高效获取用户主页全作品的专业解决方案 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback su…...

【独家披露】DeepSeek灰度发布SLI/SLO基线标准:99.95%可用性背后的4层验证漏斗

更多请点击: https://codechina.net 第一章:DeepSeek灰度发布策略全景图 DeepSeek模型服务的灰度发布并非简单的流量切分,而是一套融合可观测性、渐进式验证与多维熔断机制的工程化闭环体系。其核心目标是在保障线上推理稳定性的同时&#x…...

OpenVSP飞机参数化设计:从零到一的完整建模与气动分析指南

OpenVSP飞机参数化设计:从零到一的完整建模与气动分析指南 【免费下载链接】OpenVSP A parametric aircraft geometry tool 项目地址: https://gitcode.com/gh_mirrors/ope/OpenVSP OpenVSP是一款由NASA开发的免费开源飞机参数化设计工具,它让航空…...

免费岛屿设计工具终极指南:Happy Island Designer 完整教程 [特殊字符]️

免费岛屿设计工具终极指南:Happy Island Designer 完整教程 🏝️ 【免费下载链接】HappyIslandDesigner "Happy Island Designer (Alpha)",是一个在线工具,它允许用户设计和定制自己的岛屿。这个工具是受游戏《动物森友…...

代码跑偏白盒补漏:判定节点覆盖全路径测试

位于程序逻辑分叉处,起着关键开通作用的判定节点,意义无比重大。于程序运行进程里,每一条if语句、else语句以及switch语句背后,事实上都暗藏着一条独具特色且彼此独立的执行回路。而测试覆盖的核心使命,就是要把这些回…...

思源宋体完全免费商用指南:7种字重中文开源字体终极教程

思源宋体完全免费商用指南:7种字重中文开源字体终极教程 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 想要为你的中文设计项目找到一款既专业又完全免费的高质量字体吗&a…...