C++~~~vector容器(p31-P40)
一、vector容器1、vector基本概念vector数据结构和数组非常类似也成为单端数组。在数组的尾端进行插入删除。2.vector与普通数组区别数组是静态空间而vector可以动态扩展。3.动态扩展并不是在原空间之后续接新空间而是找更大的内存空间然后将原数据拷贝到新空间释放原空间。vector容器的迭代器是支持随机访问的迭代器。v.begin();第一个元素v.end();最后一个元素的后一个元素4.函数原型vectorTv;//采用末班实现类实现默认构造函数。vector(v.begin(),v.end());//将v[begin(),end())区间中的元素拷贝给本身vector(n,elem);//构造函数将n个elem拷贝给本身。vector(constvectorvec);//拷贝构造函数5.代码实现//vector容器--构造函数#includeiostream#includevector#includestring#includevectorusingnamespacestd;voidprintVector(vectorintV){for(vectorint::iterator itV.begin();it!V.end();it){cout*it ;}coutendl;}voidtest(){vectorintv1;//默认构造无参构造for(inti0;i10;i){v1.push_back(i);}printVector(v1);//通过区间方式进行构造vectorintv2(v1.begin(),v1.end());printVector(v2);//n个elem方式构造第一个参数是个数第二个是元素值//拷贝构造vectorintv4(v3);printVector(v4);}intmain(){test();}//输出01234567890123456789100100100100100100100100100100100100100100100100100100100100二、vector容器–赋值操作1.功能描述给vector容器进行赋值2.函数原型vectoroeprator(constvetcorvec);//重载等号操作符assign(beg,end);//将[beg,end)区间中的数据拷贝赋值给本身。assign(n,elem);//将n个elem拷贝赋值给本身//vector容器--赋值操作#includeiostream#includevector#includestring#includevectorusingnamespacestd;//利用迭代器对vector容器做一个for循环遍历输出//遍历操作voidprintTest(vectorintv){for(vectorint::iterator itv.begin();it!v.end();it){cout*it ;}coutendl;}//vector容器的赋值voidtest(){vectorintv1;for(inti0;i10;i){v1.push_back(i);}printTest(v1);//赋值 vectorintv2;v2v1;printTest(v2);//assign赋值vectorintv3;v3.assign(v1.begin(),v1.end());printTest(v3);//n个elem方式赋值vectorintv4;v4.assign(10,100);printTest(v4);}intmain(){test();}//输出012345678901234567890123456789100100100100100100100100100100vector赋值可以用也可以用assign。三、vector容器–插入和删除1.功能描述对vector容器的容量和大小操作。2.函数原型empty();//判断容器是否为空capacity();//容器的容量size();//返回容器中元素的个数。resize(intnum);//重新指定容器的长度为num若容器变成长则以默认值填充新位置。//如果容器变短则末尾超出容器长度的元素被删除resize(intnum,elem);//重新指定容器的长度为num若容器变长则以elem值填充新位置//如果容器变短则末尾超出容器长度的元素被删除。3.代码实现//vector容器--容量和大小#includeiostream#includevector#includestring#includevectorusingnamespacestd;//遍历操作voidprintTest(vectorintV){for(vectorint::iterator itV.begin();it!V.end();it){cout*it ;}coutendl;}voidtest(){vectorintv1;for(inti0;i10;i){v1.push_back(i);}printTest(v1);if(v1.empty()){//为真代表容器为空coutV1 is emptyendl;}else{coutV1 is not empty.endl;coutV1 capacity is v1.capacity()endl;coutV1 size is v1.size()endl;}// //重新指定大小// v1.resize(15);// printTest(v1);//如果重新指定的比原来长 默认用0填充新的位置。//重新指定大小v1.resize(15,100);//利用重载版本可以指定默认填充值参数2printTest(v1);//如果重新指定的比原来长 默认用0填充新的位置。v1.resize(5);printTest(v1);}intmain(){test();}//输出0123456789V1 isnotempty.V1 capacity is16V1 size is10012345678910010010010010001234四、vector容器–数据存取1.功能描述:对vector容器进行插入、删除操作2.函数原型push_back(ele);//尾部插入元素elepop_back();//删除最后一个元素insert(const_iterator pos,ele);//迭代器指向位置pos插入元素eleinsert(const_iterator pos,intcnt,ele);//迭代器指向位置pos插入CNT个元素eleerase(const_itarator pos);//删除迭代器指向的元素erase(const_iterator start,const_iterator end);//删除迭代器从start到end之间的元素clear();//删除容器中所有的元素3.代码实现//vector容器--数据存取#includeiostream#includevector#includestring#includevectorusingnamespacestd;voidprintTest(vectorintv){for(vectorint::iterator itv.begin();it!v.end();it){cout*it ;}coutendl;}voidtest(){vectorintv1;//尾插v1.push_back(1);v1.push_back(2);v1.push_back(3);v1.push_back(4);v1.push_back(5);v1.push_back(6);//遍历printTest(v1);//尾删v1.pop_back();//遍历printTest(v1);//插入v1.insert(v1.begin(),100);printTest(v1);v1.insert(v1.begin(),2,1000);printTest(v1);//删除参数也是迭代器v1.erase(v1.begin());printTest(v1);//清空v1.erase(v1.begin(),v1.end());printTest(v1);//清空v1.clear();printTest(v1);}intmain(){test();}//输出D:\SoftProjectOne\vectCustom.exe12345612345100123451000100010012345100010012345进程已结束退出代码为0总结尾插—push_back尾删—pop_back插入–insert位置迭代器删除–erase位置迭代器清空–clear五、vector容器–数据存取1.功能描述对vector中的数据的存取操作2.函数原型at(intidx);//返回索引[idx]所指的数据operator[];//返回索引idx所指的数据front();//返回容器的第一个数据元素back();//返回容器中最后一个数据元素3.代码实现//vector容器--数据存取#includeiostream#includevector#includestring#includevectorusingnamespacestd;voidtest(){vectorintv1;for(inti0;i10;i){v1.push_back(i);}//利用[]方式访问数组中的元素for(inti0;iv1.size();i){coutv1[i] ;}coutendl;//利用at方式访问元素for(inti0;iv1.size();i){coutv1.at(i) ;}coutendl;//获取第一个元素coutfirst element is v1.front()endl;//获取最后一个元素coutlast element is v1.back()endl;}intmain(){test();}//输出01234567890123456789first element is0last element is9

相关新闻

Specify CLI 10大核心命令详解:设计令牌自动化同步实战指南

Specify CLI 10大核心命令详解:设计令牌自动化同步实战指南

1. 从Spec Kit到Specify CLI:为什么开发者需要关注这个工具链如果你最近在关注设计系统、设计令牌或者前端工程化领域,可能会频繁听到“Spec Kit”和“Specify”这两个名字。简单来说,Spec Kit是一个用于构建和维护设计系统的开源工具包&…

2026/10/12 14:39:08 阅读更多 →
U盘文件防删除实战:从NTFS权限到加密容器的完整防护方案

U盘文件防删除实战:从NTFS权限到加密容器的完整防护方案

1. 从一次尴尬的“误删”事件说起上周,同事急匆匆地跑过来,说借我的U盘拷贝一份重要资料,结果不小心把他自己刚拷进去的合同文件给删了,还顺手清空了回收站。他一脸懊恼,问我有没有办法恢复。我接过U盘,插上…

2026/10/14 15:39:18 阅读更多 →
低成本构建AI数据分析系统:DeepSeek V4与Codex集成实战指南

低成本构建AI数据分析系统:DeepSeek V4与Codex集成实战指南

1. 先搞清楚这到底是个什么项目,以及它解决了什么问题如果你最近在关注国产大模型和AI编程工具,大概率会看到“DeepSeek V4接入Codex”这个组合。这本质上是一个将国产大模型DeepSeek V4作为核心推理引擎,集成到Codex这个AI编程工具中&#x…

2026/10/12 8:07:59 阅读更多 →

最新新闻

Handoffs与动态路由:多Agent系统不丢上下文的交接机制

Handoffs与动态路由:多Agent系统不丢上下文的交接机制

先说个我踩过的坑。团队早期做内部服务Agent时,什么都交给一个“全能Agent”处理:查订单、改密码、退款、报表查询、知识库问答,全塞进一个系统提示词里。一开始还能跑,单子一多就原形毕露——上下文越来越长,模型开始…

2026/10/14 22:42:10 阅读更多 →
90万律师竞争下,我如何用AI工作流打造数字分身

90万律师竞争下,我如何用AI工作流打造数字分身

1. 从“90万律师”这个数字说起:我为什么要做这个选择“90万律师”——这个数字第一次出现在我视野里的时候,我正在整理一份合同审查清单。当时没太在意,觉得不过是一个行业统计数字。但后来越想越不对劲:如果市场上已经有这么多同…

2026/10/14 22:42:10 阅读更多 →
Python连接SQL Server常见错误与解决方案

Python连接SQL Server常见错误与解决方案

1. 问题背景与核心挑战最近在开发一个需要连接SQL Server数据库的Python项目时,遇到了一个让人头疼的问题:使用pymssql库建立连接时频繁报错。错误信息显示"DB-Lib error message 20009, severity 9",这直接导致整个数据交互流程中…

2026/10/14 22:42:10 阅读更多 →
AI代理自主上网实测:传统Web防护为何集体失效

AI代理自主上网实测:传统Web防护为何集体失效

1. 当AI代理开始自己上网,旧规则还管用吗最近圈子里聊得最多的话题,就是AI代理自主上网这件事。你可能已经在各种技术社区看到过类似的讨论:一个AI代理被赋予某个目标之后,会自己打开浏览器、填写表单、点击按钮、甚至尝试绕过页面…

2026/10/14 22:42:10 阅读更多 →
DDoS攻击原理与防御:基于TCP/IP分层模型的实战指南

DDoS攻击原理与防御:基于TCP/IP分层模型的实战指南

我这些年排查过不少网络故障,也和DDoS攻击正面交过手。最深的体会是:很多人背得出OSI七层的名字,但真到了抓包分析、配置防护策略的时候,脑子里那套分层模型就完全派不上用场。分层模型不是考试知识点,它是一张攻防地图…

2026/10/14 22:42:10 阅读更多 →
基于SSM的教师业绩考核管理系统设计与实现

基于SSM的教师业绩考核管理系统设计与实现

1. 项目概述与分析1.1 需求背景与痛点高校教师年度考核、职称评审、岗位聘任这些工作,每年都要折腾一遍。不同学院、不同系部的考核规则还不完全一致,有的看课时量,有的看论文和项目,有的还看专利和获奖。过去很多单位还停留在人工…

2026/10/14 22:41:10 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/14 3:30:28 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/14 16:30:29 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/14 3:29:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 7:53:34 阅读更多 →