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

STL核心:vector动态数组完全指南

一、STL 整体介绍STL 是 C 标准模板库三大核心组件容器存放数据vector、string、list、map 等算法排序、查找、遍历、交换迭代器容器通用访问指针STL 优势无需手动造轮子全部封装成熟接口动态扩容、内存自动管理代码简洁、开发效率极高刷题、项目开发必备二、vector 容器核心概念vector 是动态数组完全替代原生普通数组原生数组长度固定容易越界vector运行时自动扩容长度可变安全高效连续内存存储支持下标随机访问头文件必须引入#include vector using namespace std;三、vector 四种常用初始化方式// 1. 空容器 vectorint v1; // 2. 指定大小默认初始化为0 vectorint v2(5); // 3. 指定大小初始值 vectorint v3(5, 10); // 4. 直接初始化列表 vectorint v4 {1,2,3,4,5};四、vector 增删改查 核心 API1. 增加元素vectorint v; v.push_back(10); // 尾部插入最常用 v.push_back(20);2. 修改元素支持下标直接修改和数组用法一致v[0] 100;3. 查询元素// 下标访问 cout v[0]; // 获取首尾元素 cout v.front(); cout v.back();4. 删除元素v.pop_back(); // 删除尾部元素 v.clear(); // 清空所有元素5. 容量与大小v.size(); // 当前元素个数 v.empty(); // 判断是否为空 v.resize(8); // 重新指定容器大小五、vector 三种遍历方式全掌握方式 1下标遍历最简单新手首选vectorint v {1,2,3,4,5}; for(int i 0; i v.size(); i) { cout v[i] ; }方式 2迭代器遍历STL 通用写法迭代器是所有容器的通用访问方式理解为容器专用指针for(vectorint::iterator it v.begin(); it ! v.end(); it) { cout *it ; }方式 3范围 for 遍历C11 极简写法for(int val : v) { cout val ; }六、vector 嵌套二维动态数组日常刷题、矩阵场景高频使用替代二维数组// 二维vector vectorvectorint arr; // 插入一行数据 arr.push_back({1,2,3}); arr.push_back({4,5,6}); // 双层循环遍历 for(int i 0; i arr.size(); i) { for(int j 0; j arr[i].size(); j) { cout arr[i][j] ; } cout endl; }七、完整综合实战案例需求录入数据、遍历、删除、清空、判空#include iostream #include vector using namespace std; int main() { vectorint v; // 尾部添加元素 v.push_back(15); v.push_back(25); v.push_back(35); // 下标修改 v[1] 99; // 范围for遍历 cout 容器元素; for(int num : v) { cout num ; } cout endl; // 首尾元素 cout 首元素 v.front() endl; cout 尾元素 v.back() endl; // 删除尾部 v.pop_back(); cout 删除后大小 v.size() endl; // 清空 v.clear(); if(v.empty()) { cout 容器已清空 endl; } return 0; }八、vector VS 原生数组 硬核对比表格特性普通数组vector 容器长度固定不可变动态自动扩容内存栈区 / 全局区堆区自动管理越界风险极易越界崩溃安全性更高常用操作无内置方法自带增删清空接口适用场景固定少量数据项目、刷题、批量数据结论实际开发与算法刷题优先使用 vector九、新手高频易错点忘记引入头文件#include vector使用下标访问不存在的位置造成越界混淆size()元素个数与内存容量清空数据误用pop_back循环删除直接用clear()二维 vector 嵌套书写格式错误

相关文章:

STL核心:vector动态数组完全指南

一、STL 整体介绍STL 是 C 标准模板库,三大核心组件:容器:存放数据(vector、string、list、map 等)算法:排序、查找、遍历、交换迭代器:容器通用访问指针STL 优势:无需手动造轮子&am…...

保姆级教程:Ubuntu 20.04/18.04系统下Atlas 300i Pro/T 芯片驱动、CANN 6.3.RC1及MindSpore 2.0环境配置详解

昇腾AI开发环境全栈配置指南:Ubuntu系统下的Atlas 300i Pro/T芯片实战 在AI算力需求爆炸式增长的今天,企业级AI加速卡的环境配置效率直接决定了算法团队的研发效能。本文将深入解析基于Ubuntu 18.04/20.04的昇腾Atlas 300i Pro/T系列加速卡全栈开发环境搭…...

ChatGPT机器人集成实战:从API调用到生产级对话系统构建

1. 项目概述:一个为机器人开发者准备的ChatGPT文档库如果你正在开发一个聊天机器人、智能客服,或者任何需要接入自然语言对话能力的应用,那么你大概率已经听说过ChatGPT的API。它的能力毋庸置疑,但官方文档更多是面向通用场景的AP…...

AI也有“失忆症“?Kenotic Labs提出的“连续性层“或许是彻底的解法

这项由Kenotic Labs独立研究机构发布的论文,于2026年4月以预印本形式公开,编号为arXiv:2604.17273,作者为该机构创始人Samuel Sameer Tanguturi。有兴趣深入了解的读者可通过该编号在arXiv平台查阅完整论文。每次打开一个AI对话窗口&#xff…...

从‘遗忘’到‘更新’:用PyTorch拆解GRU的门控逻辑,可视化理解它为何比LSTM更简单

从‘遗忘’到‘更新’:用PyTorch拆解GRU的门控逻辑,可视化理解它为何比LSTM更简单 循环神经网络(RNN)在处理序列数据时表现出色,但在面对长序列时常常会遇到梯度消失或爆炸的问题。为了解决这个问题,研究者…...

基于Alexa与GPT-4构建智能语音助手:从架构设计到部署实践

1. 项目概述与核心价值 最近在折腾智能家居和语音助手,发现一个挺有意思的开源项目,叫 alexandremendoncaalvaro/skill-alexa-chatgpt4 。简单来说,这是一个能让你的亚马逊 Alexa 设备(比如 Echo 音箱)直接调用 Cha…...

IBM Plex字体:企业级开源字体解决方案完全指南

IBM Plex字体:企业级开源字体解决方案完全指南 【免费下载链接】plex The package of IBM’s typeface, IBM Plex. 项目地址: https://gitcode.com/gh_mirrors/pl/plex 你是否曾为寻找一款既专业又免费、既美观又实用的字体而烦恼?🤔 …...

Vernclaw Connect CLI:命令行网络隧道与连接管理的瑞士军刀

1. 项目概述与核心价值 最近在折腾一些需要跨网络、跨设备进行安全通信和管理的自动化脚本时,遇到了一个痛点:如何在不依赖复杂图形界面和重型管理平台的情况下,快速、安全地建立点到点的连接,并执行远程命令或文件传输&#xff1…...

构建人格化AI聊天系统:从提示工程到向量记忆的实战指南

1. 项目概述与核心价值最近在折腾一个挺有意思的东西,一个名为sys-fairy-eve/nightly-mvp-2026-03-28-g0dm0d3-persona-chat的项目。光看这个标题,信息量就很大,它不像一个传统的软件应用,更像是一个特定版本、特定功能的“角色”…...

Hermes Agent 15 个隐藏特性

99% 的用户只用了 8%,把价值百万的 Agent 当成了“高级 Telegram 机器人” 在 AI Agent 工具的讨论里,几乎所有人都默认了一个前提:Hermes 就是“更聪明的 ChatGPT Telegram 集成”。装好、连模型、打字、等回复、关窗口,任务完成…...

Kimi K2.6 + Claude 多代理路由栈

开发者还在为“哪家AI编码工具最好”站队,而真正出货最多的那批人早已把周账单砍到1/7 在 AI 编码工具的讨论里,几乎所有开发者都默认了一个前提:必须选边站队。要么是 Claude Code 死忠,要么是 Cursor 铁粉,要么是 GP…...

BepInEx 6.0.0:Unity游戏模组开发的终极插件框架深度解析 [特殊字符]

BepInEx 6.0.0:Unity游戏模组开发的终极插件框架深度解析 🚀 【免费下载链接】BepInEx Unity / XNA game patcher and plugin framework 项目地址: https://gitcode.com/GitHub_Trending/be/BepInEx BepInEx(Bepis Injector Extensibl…...

CARLA与SUMO联合仿真踩坑实录:车辆速度获取不到?可能是ID映射搞的鬼

CARLA与SUMO联合仿真中的ID映射陷阱:从速度获取失败到系统协同设计 当你在深夜的实验室里盯着屏幕上静止的车辆数据时,那种挫败感我深有体会。CARLA和SUMO的联合仿真本应是智能交通系统研究的利器,却因为一个看似简单的车辆速度获取问题让整个…...

AgentNova R05.0:零依赖、本地优先的自主AI智能体框架深度解析

1. 项目概述:一个为本地运行而生的可扩展智能体框架 如果你和我一样,对市面上那些动辄需要联网、依赖复杂云服务、或者封装得像个黑盒子的AI智能体框架感到头疼,那么AgentNova R05.0的出现,可能会让你眼前一亮。这是一个处于Alph…...

游戏修改进阶:用CE修改器的代码注入功能,把‘扣血’变成‘加血’

游戏逆向实战:用CE代码注入实现"扣血变加血"的底层逻辑改造 在游戏修改的进阶领域,单纯修改数值地址已经无法满足高阶玩家的需求。当游戏采用动态地址、服务器校验或复杂的计算逻辑时,传统的内存扫描方法往往束手无策。这正是代码注…...

MagiskOnWSA:革命性Windows安卓子系统深度定制解决方案

MagiskOnWSA:革命性Windows安卓子系统深度定制解决方案 【免费下载链接】MagiskOnWSALocal Integrate Magisk root and Google Apps into WSA (Windows Subsystem for Android) 项目地址: https://gitcode.com/gh_mirrors/ma/MagiskOnWSALocal 在Windows 11上…...

在Ubuntu 20.04上,除了OpenDaylight,还有哪些SDN控制器值得一试?

在Ubuntu 20.04上探索OpenDaylight之外的SDN控制器生态 当OpenDaylight已经成为你SDN实验环境中的常客时,是否曾好奇过这个开源控制器之外的广阔天地?作为网络工程师或SDN初学者,了解不同控制器的特性就像掌握多种工具,能让你在面…...

终极内存管理方案:Mem Reduct 三步解决Windows系统卡顿问题

终极内存管理方案:Mem Reduct 三步解决Windows系统卡顿问题 【免费下载链接】memreduct Lightweight real-time memory management application to monitor and clean system memory on your computer. 项目地址: https://gitcode.com/gh_mirrors/me/memreduct …...

douyin-downloader深度解析:抖音无水印批量下载终极指南

douyin-downloader深度解析:抖音无水印批量下载终极指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback sup…...

开发者方舟计划:软件测试从业者的专业进化之路

在当今快速迭代的软件开发环境中,软件测试从业者面临前所未有的挑战:如何在高频发布中确保应用稳定性,如何在复杂架构下提升缺陷检出率,以及如何从单纯的功能验证转向全链路质量保障。开发者方舟计划应运而生,这是一个…...

基于Next.js与WooCommerce构建高性能无头电商前端实战指南

1. 项目概述:为什么选择 Next.js 与 WooCommerce 的组合? 如果你正在寻找一个现代化的、高性能的电商网站解决方案,并且对 WordPress 的生态和 WooCommerce 的灵活性情有独钟,那么 w3bdesign/nextjs-woocommerce 这个项目绝对值…...

3分钟搞定飞书文档转Markdown:告别复制粘贴的烦恼

3分钟搞定飞书文档转Markdown:告别复制粘贴的烦恼 【免费下载链接】feishu2md 一键命令下载飞书文档为 Markdown(寻找维护者) 项目地址: https://gitcode.com/gh_mirrors/fe/feishu2md 你是否曾为将飞书文档转换为Markdown而头疼&…...

ChatWaifu开源项目解析:从LLM到人格化AI伴侣的工程实践

1. 项目概述:当AI助手遇上二次元伴侣最近在GitHub上闲逛,发现了一个名为“ChatWaifu”的项目,作者是cjyaddone。光看这个名字,估计不少朋友已经会心一笑了。“Waifu”(ワイフ)这个词,源自日语的…...

高效配置B站会员购抢票脚本:多通道实时通知系统实战指南

高效配置B站会员购抢票脚本:多通道实时通知系统实战指南 【免费下载链接】biliTickerBuy b站会员购购票辅助工具 项目地址: https://gitcode.com/GitHub_Trending/bi/biliTickerBuy biliTickerBuy是一个专为B站会员购设计的开源抢票辅助工具,通过…...

OpenClaw Forge:基于身份张力与文化原型的AI角色深度锻造方法论

1. 项目概述:从零到一,打造有“灵魂”的AI角色如果你也和我一样,在尝试为Claude Code(或者任何AI助手)设计一个真正有深度、有记忆点的“角色”时,感到无从下手,那么OpenClaw Forge这个项目&…...

ClickClaw:一键部署AI智能体,告别命令行,实现开箱即用

1. 项目概述:从命令行到点击即用的AI助手革命 如果你对AI智能体(Agent)感兴趣,肯定听说过OpenClaw。它是一个功能强大的开源AI助手框架,能让你创建自己的“贾维斯”,通过飞书、微信、Telegram等渠道与AI对话…...

YOLO26涨点改进| SCI 2025 | 独家创新首发、注意力改进篇| 引入DRAB双残差注意力模块,改进FBRT-YOLO小目标检测模型,助力红外小目标检测、小目标图像分割、遥感目标检测任务涨点

一、本文介绍 🔥本文给大家介绍使用 DRAB双残差注意力模块 改进YOLO26网络模型,增强网络对弱小目标的特征提取能力,使模型在复杂背景中更准确地区分真实目标与噪声干扰。其核心作用是通过卷积提取基础局部特征,再利用通道注意力筛选关键特征通道,利用空间注意力突出目标…...

扩散模型与LLM协同优化语音识别技术解析

1. 项目背景与核心价值去年在语音技术峰会上第一次听到"扩散模型LLM"的混合架构时,我就意识到这可能是下一代语音处理系统的突破口。传统语音识别(ASR)系统在面对口音、噪声等复杂场景时,往往需要依赖复杂的后处理流水线…...

YOLO26涨点改进| SCI 2025 | 独家创新首发、注意力改进篇| 引入APTB通道和空间注意力机制,含二次创新多种改进点,助力红外小目标检测、小目标图像分割、遥感目标检测任务涨点

一、本文介绍 🔥本文给大家介绍使用 APTB通道和空间注意力机制 改进YOLO26网络模型,通过自适应通道分裂机制,只让部分通道参与自注意力计算,再将注意力特征与未参与计算的通道进行融合,并利用 ConvMLP 进一步增强非线性表达能力。因此,APTB 更有利于缓解小目标在深层特…...

3分钟搞定GitHub网络加速:开源浏览器扩展完整使用指南

3分钟搞定GitHub网络加速:开源浏览器扩展完整使用指南 【免费下载链接】Fast-GitHub 国内Github下载很慢,用上了这个插件后,下载速度嗖嗖嗖的~! 项目地址: https://gitcode.com/gh_mirrors/fa/Fast-GitHub 你是否曾在紧急项…...