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

C++ STL容器:vector高效使用指南

STL容器概述STLStandard Template Library是C标准库的核心组成部分提供了一系列通用的数据结构和算法。容器是STL中用于存储和管理数据的模板类分为序列容器如vector、list和关联容器如map、set。首先我们来看第一个常用的容器vector。vector容器基本概念vector是动态数组属于序列容器支持随机访问。其特点包括内存连续分配可通过下标快速访问元素O(1)时间复杂度。动态扩容当容量不足时自动分配更大的内存并迁移数据通常扩容因子为1.5或2倍。也可以自定义扩大倍数。尾部插入/删除高效O(1)中间或头部操作较慢O(n)。使用方法预览#include vector using namespace std; // 1. 初始化 vectorint v1; // 空vector vectorint v2(5, 10); // 5个元素初始值为10 vectorint v3 {1, 2, 3}; // 列表初始化 // 2. 元素访问 int a v3[0]; // 下标访问不检查越界 int b v3.at(1); // 带越界检查的访问 int c v3.front(); // 首元素 int d v3.back(); // 末元素 // 3. 修改操作 v3.push_back(4); // 尾部插入 v3.pop_back(); // 尾部删除 v3.insert(v3.begin() 1, 5); // 在指定位置插入 v3.erase(v3.begin()); // 删除指定位置元素 v3.clear(); // 清空所有元素 // 4. 容量操作 bool isEmpty v3.empty(); // 判断是否为空 size_t size v3.size(); // 当前元素数量 size_t cap v3.capacity(); // 当前总容量 v3.reserve(100); // 预分配容量避免频繁扩容 v3.resize(10); // 调整元素数量 // 5. 迭代器遍历 for (auto it v3.begin(); it ! v3.end(); it) { cout *it ; } for (int num : v3) { // 范围for循环 cout num ; }注意事项越界访问operator[]不检查边界at()会抛出std::out_of_range异常。迭代器失效插入/删除操作可能导致迭代器失效如扩容后原指针失效。性能权衡频繁在中间插入/删除时考虑使用list或deque。底层原理内存管理通过动态数组实现内部维护三个指针start数据头、finish已用空间尾、end_of_storage总容量尾。扩容机制扩容时分配新内存拷贝旧数据并释放原内存。推荐使用reserve()预分配以减少扩容开销。元素类型存储的对象需支持拷贝构造和赋值操作如类对象需实现深拷贝。使用建议预分配空间已知大小时提前调用reserve()提升性能。避免频繁插入/删除若需高频操作中间元素改用list或deque。释放内存vector的clear()不会释放内存需通过swap技巧释放vectorint().swap(v1); // 清空并释放内存

相关文章:

C++ STL容器:vector高效使用指南

STL容器概述STL(Standard Template Library)是C标准库的核心组成部分,提供了一系列通用的数据结构和算法。容器是STL中用于存储和管理数据的模板类,分为序列容器(如vector、list)和关联容器(如m…...

2026年闭眼入!千笔,实力封神的降AIGC网站

在AI技术日益渗透学术写作的今天,越来越多的学生、研究人员和职场人士开始依赖AI工具提升写作效率。然而,随着知网、维普、万方等查重系统对AI生成内容的识别能力不断提升,以及Turnitin等国际平台对AIGC的严格审查,论文中的AI痕迹…...

Arduino Nicla Sense Env 多传感器驱动库详解

1. 项目概述Arduino_NiclaSenseEnv 是专为 Arduino 生态设计的 Nicla Sense Env 开发板驱动库,提供对板载三颗高精度环境传感器的完整、原子化控制能力。该库并非简单封装,而是基于传感器原始通信协议(IC)构建的工程级抽象层&…...

Kook Zimage真实幻想Turbo惊艳效果展示:梦幻光影×写实肤质高清作品集

Kook Zimage真实幻想Turbo惊艳效果展示:梦幻光影写实肤质高清作品集 1. 项目概览 Kook Zimage真实幻想Turbo是一款专为个人GPU设计的轻量化幻想风格图像生成系统。它基于Z-Image-Turbo极速文生图底座,深度融合了专属优化权重,专门针对梦幻幻…...

保姆级教程:手把手用PyG和FedML搭建你的第一个图联邦学习(FGL)Demo

从零构建图联邦学习系统:PyG与FedML实战指南 联邦学习与图神经网络的结合正在重塑隐私敏感领域的AI应用范式。想象一下,多家医院希望共同训练一个疾病预测模型却无法共享患者数据,或者制药公司需要协作开发新药但受限于商业机密保护——这正…...

Qwen3-32B-Chat保姆级教程:从裸机Ubuntu系统到Qwen3-32B服务上线全过程

Qwen3-32B-Chat保姆级教程:从裸机Ubuntu系统到Qwen3-32B服务上线全过程 1. 环境准备与系统要求 1.1 硬件配置要求 显卡:必须使用RTX 4090/4090D系列显卡(24GB显存)内存:建议≥120GB,避免加载模型时出现O…...

零基础Nginx配置:让腾讯混元OCR网页版支持HTTPS和域名访问

零基础Nginx配置:让腾讯混元OCR网页版支持HTTPS和域名访问 1. 为什么需要Nginx反向代理? 当你成功部署了腾讯混元OCR的WebUI后,可能会发现直接通过http://服务器IP:7860访问存在几个问题: 安全性不足:直接暴露服务端…...

〘 10 〙软考高项 | 第17章:项目干系人管理

💡 点赞・能量加载 | 🌐 关注・持续更新 📎 收藏・方便回看 | ✨ 评论・互动交流 目录 1.项目干系人管理概述 1.1 定义 1.2 谁是项目干系人 1.3 什么时候进行干系人管理 2.干系人管理过程 2.1 识别干系人 2.1.1 本过程含义 2…...

轻量模型也强大:Qwen1.5-1.8B GPTQ代码生成效果实测

轻量模型也强大:Qwen1.5-1.8B GPTQ代码生成效果实测 最近在尝试各种AI编程工具时,我发现了一个挺有意思的现象:大家好像都默认,模型越大,写代码的能力就越强。动辄几十亿、上百亿参数的大模型,确实在很多复…...

EmbeddingGemma-300m实战:快速搭建本地文本检索与分类系统

EmbeddingGemma-300m实战:快速搭建本地文本检索与分类系统 1. 引言:为什么你需要一个本地文本嵌入引擎? 想象一下这个场景:你手头有成千上万份文档、产品描述或是用户反馈,想要快速找到相似的内容,或者自…...

Pixel Dimension Fissioner企业应用:合同条款的‘法律效力保留型’改写与风险提示注入

Pixel Dimension Fissioner企业应用:合同条款的法律效力保留型改写与风险提示注入 1. 产品核心价值与应用场景 Pixel Dimension Fissioner(维度裂变器)是一款专为企业法务场景设计的智能文本处理工具,其核心价值在于&#xff1a…...

生产管理其实不复杂:盯住排产、设备、计划这八张表就够了

我这些年接触过不少工厂,发现一个挺有意思的现象:生产管理混乱的工厂,现场信息基本都是“散的”。什么意思?计划在计划部电脑里任务靠口头通知生产情况靠问班长设备状态靠老师傅感觉质量问题靠临时处理换句话说:关键管…...

C语言基础项目:实现一个轻量级时间序列数据预处理模块

C语言基础项目:实现一个轻量级时间序列数据预处理模块 最近在折腾一些嵌入式设备上的AI推理项目,发现一个挺有意思的问题:那些高大上的模型,比如处理时间序列的模型,往往需要先把原始数据“收拾”一下才能喂进去。Pyt…...

【无人售货柜・RK+YOLO】先导篇1:别瞎学!RK3576+YOLO 无人售货柜识别,新手先搞懂这几件事

目录 一、先给你交个底:学完这个系列,你到底能拿到什么结果? 二、灵魂拷问:为什么偏偏是「RK3576YOLO」这个组合? 三、先把业务逻辑掰碎了:无人售货柜商品识别,到底是个什么流程?…...

水墨江南模型在互联网内容平台的创新应用:自动生成国风短视频素材

水墨江南模型在互联网内容平台的创新应用:自动生成国风短视频素材 最近和几个做短视频的朋友聊天,他们都在抱怨一件事:想做点有文化底蕴、有质感的国风内容,但成本实在太高了。要么得花大价钱请专业画师手绘背景,要么…...

三步实现macOS运行Windows应用:Whisky从入门到精通

三步实现macOS运行Windows应用:Whisky从入门到精通 【免费下载链接】Whisky A modern Wine wrapper for macOS built with SwiftUI 项目地址: https://gitcode.com/gh_mirrors/wh/Whisky 在macOS上运行Windows应用往往意味着复杂的虚拟机配置或双系统安装&am…...

Leather Dress Collection参数详解:Trigger Word(触发词)标准化清单与误用规避

Leather Dress Collection参数详解:Trigger Word(触发词)标准化清单与误用规避 你是不是也遇到过这样的情况:下载了一个很酷的LoRA模型,兴冲冲地输入提示词,结果生成的图片完全不是你想要的风格&#xff1…...

Qwen3-4B新手教程:从镜像拉取到对话交互,完整流程详解

Qwen3-4B新手教程:从镜像拉取到对话交互,完整流程详解 想体验一个反应迅速、对话流畅的纯文本AI助手吗?今天要介绍的Qwen3-4B Instruct-2507镜像,基于阿里通义千问的纯文本大模型,去掉了视觉处理的负担,专…...

2026 年企业级低代码开发平台哪个更值得选?横向测评 9 款热门平台

企业数字化的节奏越来越快,低代码也从“做表单审批”走到了“承接企业级系统”的阶段:能不能跑通复杂流程、能不能接入一堆老系统、能不能在多端交付、能不能把能力沉淀下来复用……这些才是企业在选型时真正会反复追问的点。 这篇文章我按企业级项目里…...

MySQL存储过程实战:从创建到调用的完整指南(附常见问题排查)

MySQL存储过程实战:从创建到调用的完整指南(附常见问题排查) 在数据库开发中,存储过程就像是一把瑞士军刀——它不仅能将复杂的业务逻辑封装起来,还能显著提升应用程序的性能。对于MySQL开发者来说,掌握存储…...

机器学习+深度学习经典算法面试复习指南

目录 第一部分:机器学习 一、监督学习算法 1. K近邻(KNN) 2. 线性回归 3. 逻辑回归 4. 决策树 5. 支持向量机(SVM) 6. 贝叶斯算法(朴素贝叶斯) 7. 集成学习(重点&#xff1a…...

MinerU智能文档解析实战:财务报表自动分析,小白也能轻松搞定

MinerU智能文档解析实战:财务报表自动分析,小白也能轻松搞定 1. 从手工对账到智能解析:财务人的效率革命 想象一下这个场景:月底了,财务小王正对着电脑屏幕,双眼布满血丝。他面前是几十份来自不同供应商的…...

.NET Windows Desktop Runtime:彻底改变Windows桌面应用开发的终极解决方案

.NET Windows Desktop Runtime:彻底改变Windows桌面应用开发的终极解决方案 【免费下载链接】windowsdesktop 项目地址: https://gitcode.com/gh_mirrors/wi/windowsdesktop 你是否曾为Windows桌面应用的部署和维护而头疼不已?是否遇到过在开发环…...

GB/T 43187-2023 深度解读:车载无线通信终端国标落地与测试全方案

一、标准介绍随着智能网联汽车的快速发展,车辆与外部网络之间的连接能力正成为保障行车安全和实现车联网服务的重要基础。其中,车载紧急呼叫系统(AECS)作为典型的安全类车联网应用,在交通事故发生时能够自动向救援中心…...

别再只盯着PLC了!从编码器到驱动器,一文搞懂伺服系统三大件(附选型避坑指南)

伺服系统三大件实战指南:从选型到系统集成的深度解析 在工业自动化领域,伺服系统作为精密运动控制的核心,其性能直接影响设备精度与稳定性。然而,许多工程师在实际项目中常陷入"参数堆砌"的误区——过度关注单个部件的技…...

Ostrakon-VL-8B入门指南:首次推理10秒加载后,后续响应<1.8秒

Ostrakon-VL-8B入门指南&#xff1a;首次推理10秒加载后&#xff0c;后续响应<1.8秒 如果你在零售或餐饮行业工作&#xff0c;每天需要处理大量的商品图片、货架照片和门店环境检查&#xff0c;那么手动分析这些视觉信息会耗费大量时间。今天要介绍的Ostrakon-VL-8B&#x…...

java本科生优秀作业交流网站vue

目录技术栈选择核心功能模块关键实现步骤进阶优化方向测试与迭代项目技术支持可定制开发之功能创新亮点源码获取详细视频演示 &#xff1a;文章底部获取博主联系方式&#xff01;同行可合作技术栈选择 前端采用Vue 3&#xff08;Composition API&#xff09;搭配TypeScript&am…...

SOONet模型计算机组成原理视角下的推理性能优化

SOONet模型计算机组成原理视角下的推理性能优化 最近在折腾一个叫SOONet的模型&#xff0c;想把它部署到线上服务里。想法很美好&#xff0c;但一跑起来就发现&#xff0c;推理速度有点跟不上&#xff0c;用户等得着急。一开始我也按常规思路调了调&#xff0c;比如改改模型结…...

基于注意力机制YOLO的异常行为识别:打架/跌倒检测系统实战

摘要 随着公共安全需求的日益增长,智能安防监控中的异常行为识别技术成为研究热点。本文提出了一种基于注意力机制改进的YOLOv8异常行为识别模型,专门针对监控场景中的打架斗殴和人员跌倒两类高危事件进行实时检测。通过引入CBAM(Convolutional Block Attention Module)注…...

Qwen3-ASR实时转录效果展示:会议记录实战演示

Qwen3-ASR实时转录效果展示&#xff1a;会议记录实战演示 语音识别技术正在重塑我们的工作方式&#xff0c;而Qwen3-ASR的出现让实时会议转录达到了新的高度 1. 引言&#xff1a;当会议记录遇上AI实时转录 想象一下这样的场景&#xff1a;团队正在开一个重要项目会议&#xff…...