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

STL中vector和string容器

一vector1.1 vector 是什么vector是可变长度的动态数组底层采用连续内存空间存储数据支持随机访问会自动管理内存完美解决了原生数组长度固定、内存泄漏的痛点。1.2 常用 API 实战1.2.1. 初始化方式#include vector using namespace std; // 1. 空vector vectorint v1; // 2. 指定大小初始值为0 vectorint v2(5); // 3. 指定大小初始值 vectorint v3(5, 10); // 5个10 // 4. 列表初始化C11及以上 vectorint v4 {1,2,3,4,5};1.2.2. 访问元素vectorint v {1,2,3}; // 1. 下标访问速度快越界不报错 cout v[0] endl; // 2. at()访问越界抛异常更安全 cout v.at(1) endl; // 3. 访问首尾元素 cout v.front() v.back() endl;1.2.3. 增删改查vectorint v; // 尾部添加元素最高效 v.push_back(1); v.emplace_back(2); // C11原地构造比push_back更高效 // 中间插入效率低需移动元素 v.insert(v.begin() 1, 3); // 在下标1处插入3 // 删除元素 v.pop_back(); // 尾部删除 v.erase(v.begin()); // 删除第一个元素 v.clear(); // 清空所有元素size0capacity不变 // 容量操作性能优化关键 v.reserve(100); // 预留100个元素空间仅改变capacity不改变size v.resize(10); // 调整有效元素个数改变size1.2.4. 遍历方式vectorint v {1,2,3,4}; // 方式1下标遍历最常用 for(int i0; iv.size(); i){ cout v[i] ; } // 方式2范围forC11最简洁 for(int num : v){ cout num ; }2.1什么是 vector 二维数组vectorvectorint v;2.2二位数组的遍历方式2.2.1. 空二维 vector先定义再赋值vectorvectorint v;2.2.2. 指定行数 空行// 3行每行都是空vector vectorvectorint v(3);2.2.3. 指定行数 列数// 3行4列所有元素 10 vectorvectorint v(3, vectorint(4, 10));2.2.4. 指定行列 统一初始值// 3行4列所有元素 10 vectorvectorint v(3, vectorint(4, 10));2.2.5. 统一初始化 N 行 M 列int n 3, m 4; vectorvectorint v(n, vectorint(m, 0));2.3遍历方式for(int i0; iv.size(); i){ for(int j0; jv[i].size(); j){ cout v[i][j] ; } cout endl; }二string3.1 string 是什么string是专门处理字符序列的容器本质是存放 char 类型的 vector但封装了大量字符串专属 API比 char * 数组更安全、更易用。3.2 常用 API 实战3.2.1. 初始化方式// 1. 空字符串 string s1; // 2. C风格字符串初始化 string s2(hello); // 3. 重复字符初始化 string s3(5, a); // aaaaa // 4. 列表初始化 string s4 {world}; // 5. 拷贝初始化 string s5(s2);3.2.2. 字符串访问与转换string s hello stl; // 1. 随机访问 cout s[0] s.at(1) endl; // 2. 获取长度/判空 cout s.size() s.length() endl; // 二者等价 cout s.empty() endl;3.2.3. 字符串操作核心string s hello; // 1. 拼接效率远高于 s world; // 推荐 s.append(!); // 追加字符串 s.push_back(a); // 追加单个字符 // 2. 截取子串 string sub s.substr(0, 5); // 从下标0开始截取5个字符 // 3. 查找返回下标找不到返回string::npos int pos s.find(world); // 正向查找 int rpos s.rfind(o); // 反向查找 // 4. 替换 s.replace(0, 5, hi); // 把下标0-5的字符替换为hi // 5. 清空 s.clear();3.2.4. 数值转换C11// 数字转字符串 string s1 to_string(123); string s2 to_string(3.14); // 字符串转数字 int num stoi(123); double dou stod(3.14); long long ll stoll(123456);3.2.5. 遍历方式string s hello; // 范围for最简洁 for(char c : s){ cout c ; }

相关文章:

STL中vector和string容器

一:vector1.1 vector 是什么?vector 是可变长度的动态数组,底层采用连续内存空间存储数据,支持随机访问,会自动管理内存,完美解决了原生数组长度固定、内存泄漏的痛点。1.2 常用 API 实战1.2.1. 初始化方式…...

如何快速配置智能象棋助手:3步实现深度学习AI棋局分析

如何快速配置智能象棋助手:3步实现深度学习AI棋局分析 【免费下载链接】VinXiangQi Xiangqi syncing tool based on Yolov5 / 基于Yolov5的中国象棋连线工具 项目地址: https://gitcode.com/gh_mirrors/vi/VinXiangQi VinXiangQi是一款基于YOLOv5深度学习的中…...

搞定了加密货币api 历史K线数据缺失的问题

在做加密货币数据分析时,我经常遇到历史K线数据不连续的情况。比如你想通过 加密货币api 获取某个交易对的小时线,结果中间几条记录直接空掉。想做策略回测或者行情分析时,这种不连续的数据特别明显。 尝试过不同交易所的加密货币api&#x…...

告别手动配置!用STM32CubeMX图形化工具5分钟搞定STM32L4系列外设初始化

STM32CubeMX极速开发指南:5分钟构建L4系列多外设工程 刚拆封的Nucleo-L496ZG开发板在桌面上闪着蓝光,作为工程师的你既兴奋又焦虑——如何在最短时间内验证这块板子的基础功能?传统的手动编写初始化代码方式需要查阅数百页参考手册&#xff0…...

专业视频格式转换工具的技术实现与应用

专业视频格式转换工具的技术实现与应用 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter m4s-converter 是一个专为解决 Bilibili 缓存视频格式兼容…...

Cursor Pro破解工具终极指南:5步实现AI编程助手永久免费使用

Cursor Pro破解工具终极指南:5步实现AI编程助手永久免费使用 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reached yo…...

告别短信轰炸?聊聊5G时代的小区广播(CBS)与公共预警(PWS):技术演进、应用场景与未来展望

5G时代的小区广播技术革新:从应急预警到智慧服务的新纪元 清晨6点,东京某写字楼里的上班族手机突然同时响起尖锐警报声,屏幕亮起"地震预警:震中茨城县,预计30秒后到达,强度5.0"——这背后正是5G …...

避开蓝桥杯嵌入式环境那些坑:从CubeMX配置到Keil工程移植的保姆级避雷指南

蓝桥杯嵌入式开发实战避坑手册:从CubeMX到Keil的工程化思维 参加蓝桥杯嵌入式赛项的同学们往往会在开发环境搭建阶段耗费大量时间——明明按照教程一步步操作,生成的代码却总是报错;外设初始化看起来没问题,实际运行却毫无反应&am…...

行业洞察:输送设备技术演进与市场格局5问

一、行业趋势:柔性链输送线为何在3C和新能源行业快速普及?一个现象正在发生:过去几年,在3C电子和新能源电池的生产线上,传统的皮带线、滚筒线正越来越多地被一种叫“柔性链输送线”的设备替代。这背后不是简单的设备更…...

实测Taotoken多模型在视频创意生成任务中的响应速度与稳定性

实测Taotoken多模型在视频创意生成任务中的响应表现 1. 测试背景与方法 视频创意生成任务通常需要调用大模型API进行脚本创作、分镜描述生成等操作。这类任务对API的响应速度和稳定性有较高要求。我们通过实际调用Taotoken平台提供的多个模型,观察其在视频创意生成…...

【新人必备手册】OpenClaw Windows 11 一键安装实操教程(含安装包)

OpenClaw Windows 11 一键部署教程(2026 最新版) OpenClaw 是一款本地 AI 智能体工具,支持电脑自动化操作、文件整理、浏览器控制与办公效率提升,可在本地运行,数据留存于设备内,保障使用隐私。本文为 Win…...

3步掌握抖音视频下载:开源工具助你高效批量下载无水印内容

3步掌握抖音视频下载:开源工具助你高效批量下载无水印内容 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback s…...

MOOTDX终极指南:5分钟快速掌握Python通达信数据获取技巧

MOOTDX终极指南:5分钟快速掌握Python通达信数据获取技巧 【免费下载链接】mootdx 通达信数据读取的一个简便使用封装 项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx 还在为股票数据获取发愁吗?MOOTDX这个神奇的Python库能让你轻松获取…...

n8n-claw技能库:零代码扩展AI助手能力的MCP协议实践

1. 项目概述:n8n-claw 技能库,一个开箱即用的AI能力扩展中心 如果你正在使用 n8n-claw 来构建你的AI助手,并且厌倦了为每一个新的API集成去手动编写复杂的n8n工作流,那么这个名为 n8n-claw-templates 的开源项目,绝…...

如何快速掌握Harepacker复活版:MapleStory定制完整指南

如何快速掌握Harepacker复活版:MapleStory定制完整指南 【免费下载链接】Harepacker-resurrected All in one .wz file/map editor for MapleStory game files 项目地址: https://gitcode.com/gh_mirrors/ha/Harepacker-resurrected 你是否厌倦了千篇一律的M…...

KLayout版图设计工具:5步快速上手的完整教程与实战指南

KLayout版图设计工具:5步快速上手的完整教程与实战指南 【免费下载链接】klayout KLayout Main Sources 项目地址: https://gitcode.com/gh_mirrors/kl/klayout 在集成电路设计和芯片制造领域,版图设计是连接电路原理与物理实现的关键桥梁。KLayo…...

魔兽争霸III终极优化指南:5分钟解锁高清流畅游戏体验

魔兽争霸III终极优化指南:5分钟解锁高清流畅游戏体验 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为魔兽争霸III在现代电脑上的各种…...

2026低代码市场真相,别再被带跑偏了

“低代码市场规模已突破5000亿美元”“开发效率提升10倍”“到2026年80%的应用将由业务人员开发”…… 你是不是经常刷到这类数据?标题一个比一个劲爆,数字一个比一个夸张。但你仔细想想,这些数据到底能不能帮你回答那个最实际的问题&#xf…...

从IGBT革命到‘轻型直流’:VSC-HVDC技术是如何改变电网格局的?

从IGBT革命到‘轻型直流’:VSC-HVDC技术是如何改变电网格局的? 十年前,当瑞典中部那条10公里长的试验线路首次传输3MW电力时,恐怕连ABB的工程师也没料到,这项被称作"HVDC Light"的技术会在今天成为全球能源转…...

开源EDA神器KLayout:从零开始掌握版图设计的完整指南

开源EDA神器KLayout:从零开始掌握版图设计的完整指南 【免费下载链接】klayout KLayout Main Sources 项目地址: https://gitcode.com/gh_mirrors/kl/klayout 在集成电路设计领域,开源工具正成为越来越多工程师的选择。KLayout作为一款功能强大的…...

PySide6,使用系统内置图标

系统内置图标位于:PySide6.QtWidgets.QStyle.StandardPixmap所有的系统图标名称以及调用名:import sys from PySide6.QtWidgets import (QApplication, QWidget, QPushButton, QVBoxLayout, QScrollArea, QStyle )class IconPreview(QWidget):def __init…...

7大绝招轻松突破网盘限速:开源直链解析工具终极指南

7大绝招轻松突破网盘限速:开源直链解析工具终极指南 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天翼云…...

3步实现语雀Lake文档到Markdown的无损迁移方案

3步实现语雀Lake文档到Markdown的无损迁移方案 【免费下载链接】YuqueExportToMarkdown 将语雀导出的lake文件转为markdown 项目地址: https://gitcode.com/gh_mirrors/yu/YuqueExportToMarkdown 在知识管理平台迁移过程中,技术团队面临的最大挑战是如何将语…...

魔兽争霸3终极增强指南:如何使用WarcraftHelper插件提升你的游戏体验

魔兽争霸3终极增强指南:如何使用WarcraftHelper插件提升你的游戏体验 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为魔兽争霸3的技…...

构建高效图表服务:开源可视化工具部署全攻略

构建高效图表服务:开源可视化工具部署全攻略 【免费下载链接】plantuml-server PlantUML Online Server 项目地址: https://gitcode.com/gh_mirrors/pl/plantuml-server 你是否厌倦了在本地安装复杂的UML工具,或者需要快速为团队文档生成专业图表…...

从‘词向量搬家’到‘关系运算’:动手用NumPy模拟Transformer的QKV计算全过程(附代码)

从词向量到关系运算:用NumPy拆解Transformer的QKV核心机制 当你第一次听说"自注意力机制"时,是否也被那些神秘的Q、K、V字母搞得一头雾水?作为Transformer架构的核心,QKV计算远不止是几个矩阵乘法那么简单。让我们暂时抛…...

AI 会取代手工测试吗?测试工程师真正该担心什么?

很多做手工测试的人,最近都会有类似的担心:AI 会不会取代我的岗位?这个问题并不奇怪。因为过去很多测试工作,确实依赖人工完成:写测试用例、执行回归测试、整理测试数据、记录缺陷、验证修复结果……这些事情看起来繁琐…...

从游戏建模到数字孪生:聊聊三维重建技术在实际项目里到底怎么用(附Blender+RealityCapture案例)

从游戏建模到数字孪生:三维重建技术的实战指南 在数字内容创作领域,三维重建技术正从专业工作室走向大众视野。想象一下这样的场景:游戏开发者用手机拍摄几组照片,几小时后就能获得一个可直接导入引擎的3D角色模型;建筑…...

Windows系统必备:Visual C++运行库一键修复完全指南

Windows系统必备:Visual C运行库一键修复完全指南 【免费下载链接】vcredist AIO Repack for latest Microsoft Visual C Redistributable Runtimes 项目地址: https://gitcode.com/gh_mirrors/vc/vcredist 当您在运行某些软件或游戏时,突然弹出&…...

如何快速下载国家中小学智慧教育平台电子课本:一站式解析工具使用指南

如何快速下载国家中小学智慧教育平台电子课本:一站式解析工具使用指南 【免费下载链接】tchMaterial-parser 国家中小学智慧教育平台 电子课本下载工具,帮助您从智慧教育平台中获取电子课本的 PDF 文件网址并进行下载,让您更方便地获取课本内…...