C++容器类型内置函数随笔

news2024/11/27 8:47:19

vector 容器

添加数据 vector <int> v ;  v.push_back(数据);

访问数据的两个迭代器b.begin()和v.end() 

vector <int> :: iterator it_begin = v. begin(); //容器起始位置元素的指针

vector <int> :: iterator it_end =v.end(); //指向容器最后一个元素下一个位置的指针

while (it_begin != it_end){

        cout<< *it_begin<<endl;

        it_begin++;

}

另外一种遍历方式:

for (vector <int> :: iterator it = v.begin() ; it != v.end() ; it++)

{

        cout <<*it <<endl;

}

打印vector 元素的函数:

void printvec (vector <int> &v ){

        for (vector <int> :: iterator it = v.begin() ; it != v.end() ; it++)

         {

                cout <<*it <<endl;

        }

}

vector 相似于数组,但是数组是静态空间,vector是动态扩展

动态扩展:
并不是在原空间之后续接新空间,而是找更大的内存空间,然后将原数据拷贝新空间,释放原空间

 vector称之为单端数组,如下图:

无参构造:

vector <int > v ;

有参构造:

vector <int > v2 (v1.begin(),v1.end()); //直接赋值迭代器中间的数据

n个elem方式:

vector <int> v3 (10,100); //10个100

拷贝构造:

vector <int > v4(v);

vector 容量和大小:

判断是否为空 v1.empty()

输出容量v1.capacity()   一般是有空余,比如创建vector空间是13,但是只插入了10个数

输出大小 v1.size() // 按照上述,容量是13,大小是10

重新指定大小v1.resize (20 , x) ; //若过长,则默认使用x值填充 ,若不指定x值,默认为0

若比原来的短,超出的部分删去

插入删除:push_back / pop_back

push_back在尾部添加

pop_back在尾部删除

insert指定位置插入 v1.insert(v1.begin() ,100) //在头部插入100

insert指定位置插入 v1.insert(v1.begin() ,2,1000) //在头部插入2个1000

v1.erase(v1.begin()) ;删除一个头部元素

v1.erase(v1.begin(),v1.end()) ;从头到尾全部删除  等于v1.clear();

string容器

string 的构造函数(下列分别对应默认构造、有参构造、拷贝构造):

注意:有参构造需要传入指向const的指针变量

字符串拼接:

直接str += "需要拼接的字符";

或者str.append(” 需要拼接的字符“)

或者需要限制拼接的字符的长度:

str3.append( "LOL_APEX",3);  //第二个参数是长度,即拼接了LOL

str3.append("LOL_APEX!",4,5); //从第4个参数开始截取,取5个长度即:APEX!

查找 :find

int pos = str1.find("abc");//返回第一次出现字符的位置,若没找到返回-1

int pos1= str1.rfind ("abc"); //该函数从右往左查找, 但是下标位置还是从左往右计算

替换:replace

string str1 = "abcdefg";
str1.replace(1,3,"1111");

 返回结果a1111efg ,会把指定的字符全替换进去,而不是依据1到3的长度

字符串比较:compare

字符串比较是按字符的ASCII码进行对比

str1.compare(str2) 
=返回 0
>返回 1 //第一个字符大于第二个字符
<返回 -1

string字符串存取:

访问单个字符:at

for (int i = 0 ;i < str.size() ;i++){

        cout <<str.at(i)<<" ";   //等同于 cout <<str[i]<<" ";

}

修改单个字符也可以用at()


删除:delete  插入:insert 

string str = "hello";

str1.insert (1,"111") ; //在位置为1处插入

最后输出h111ello 

str.erase (1,3);  //从位置1删到位置3

输出hello

截取子串substr:

string str1 = "abcdef";

string subs1  = str1.substr (1,3);

输出sub1 为bcd

实用场景比如截取邮件的@前用户名

拷贝: copy

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2187172.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

FinOps三人行:云计算时代的FinOps 反模式和SRE(文字+视频版)

简介 9月20日&#xff0c;由SRE专委会和雅菲奥朗主办的“FinOps三人行&#xff1a;云计算时代的FinOps 反模式和SRE”在线研讨会成功举办&#xff0c;三位业界专家雅菲奥朗刘峰老师、易点天下董金老师和辛诺科技Larry老师齐聚一堂&#xff0c;聚焦于云计算环境下的并购模式、运…

Python编码规范与常见问题纠正

Python编码规范与常见问题纠正 Python 是一种以简洁和易读性著称的编程语言&#xff0c;因此&#xff0c;遵循良好的编码规范不仅能使代码易于维护&#xff0c;还能提升代码的可读性和可扩展性。编写规范的 Python 代码也是开发者职业素养的一部分&#xff0c;本文将从 Python…

Java-数据结构-Map和Set(三)-习题 o(´^`)o

目录 ❄️一、习题一(只出现一次的数字)&#xff1a; ❄️二、习题二(随机链表的复制)&#xff1a; ❄️三、习题三(宝石与石头)&#xff1a; ❄️四、习题四(旧键盘)&#xff1a; ❄️五、习题五(前k个高频单词)&#xff1a; ❄️总结&#xff1a; ❄️一、习题一(只出现一…

【Nacos架构 原理】内核设计之Nacos一致性协议

文章目录 Nacos一致性协议为什么需要一致性协议Nacos选择了Raft&#xff08;强一致性&#xff09;&Distro&#xff08;最终一致性&#xff09;服务发现角度配置管理角度 Nacos自研Distro协议背景设计思想数据初始化数据校验写操作读操作 Nacos一致性协议 为什么需要一致性…

大模型笔记05--coze经典案例分析

大模型笔记05--coze经典案例分析 介绍经典案例分析抖音视频转小红书文案艺术照 & 卡通照片助手艺术照图像流卡通照片图像流多功能图像助手 注意事项说明 介绍 扣子是新一代 AI 应用开发平台&#xff0c;具备完善的生态系统&#xff0c;是国内最出色的AI平台之一。用好coze…

C/C++/EasyX ——入门图形编程(2)

【说明】这一篇的内容都是很基础的&#xff0c;所以内容会很多&#xff0c;具体现在也不知道要写多少&#xff0c;先写下去吧&#xff0c;新手小白们都不用担心&#xff0c;这个内容不会很难&#xff0c;因为我也是从一无所知过来的&#xff0c;很好入门的&#xff0c;&#xf…

游览器输入URL并Enter时都发生了什么 面试完美回答

文章目录 前言URL解析DNS解析**浏览器缓存****操作系统缓存**&#xff1a;**路由器缓存**&#xff1a;ISP&#xff08;Internet service provider&#xff09;缓存DNS递归解析IP地址的获取缓存结果 建立TCP连接发送HTTP请求服务器响应TCP链接断开渲染页面解析一 HTML解析过程解…

带你快速了解后端API服务的搭建

前言&#xff1a;写这篇文章的初衷是想分享一下我学习搭建后端API的过程&#xff0c;希望能帮助到和我一样想快速写API接口并部署到服务器上的同学&#x1f61c; 第一步&#xff1a;创建阿里云服务器 1、首先注册一个阿里云账号&#x1f917; 2、出于学习成本考虑&#xff0…

Linux系统,docker容器内查看pikachu源代码

在Linux系统中&#xff0c;要查看Docker容器内的Pikachu的源代码&#xff0c;需要先确保Pikachu的Docker镜像已经运行在系统上。以下是步骤和示例代码&#xff1a; 1、查找Pikachu容器的ID或名称&#xff1a; docker ps -a 2、使用docker exec命令进入运行中的Pikachu容器&am…

Spring MVC的运行流程详解

Spring MVC作为一个广泛使用的框架&#xff0c;提供了灵活且强大的MVC架构支持。尤其在业务系统中&#xff0c;Spring MVC能够有效地处理大量并发请求&#xff0c;提供良好的用户体验。本文将详细讲解Spring MVC的运行流程&#xff0c;以电商交易系统为案例&#xff0c;帮助读者…

不再烦恼!四款AI工具助你轻松打造完美PPT

嘿&#xff0c;各位办公室的小伙伴们&#xff0c;今儿咱们来聊聊那些让咱们工作生活大变样的“智能小伙伴”。作为每天跟PPT打交道的办公室文员&#xff0c;我敢说&#xff0c;自从有了这些神器&#xff0c;我的工作效率简直坐上了火箭&#xff0c;嗖嗖地往上涨&#xff01; 1…

Vue-Lecture1-Notes

渐进式框架 Vue 被称为“渐进式框架”&#xff0c;是因为它允许开发者根据项目的需求逐步引入和使用其功能&#xff0c;而不需要一次性使用整个框架。简单来说&#xff0c;Vue 提供了从简单到复杂的功能层次&#xff0c;可以灵活选择使用。 按需使用&#xff1a;Vue 的核心功能…

CSP-J Day 3 模拟赛补题报告

姓名&#xff1a;王胤皓&#xff0c;校区&#xff1a;和谐校区&#xff0c;考试时间&#xff1a; 2024 2024 2024 年 10 10 10 月 3 3 3 日 9 : 00 : 00 9:00:00 9:00:00~ 12 : 30 : 00 12:30:00 12:30:00&#xff0c;学号&#xff1a; S 07738 S07738 S07738 请关注作者的…

docker运行arm64架构的镜像、不同平台镜像构建

背景 Docker 允许开发者将应用及其依赖打包成一个轻量级、可移植的容器&#xff0c;实现“一次构建&#xff0c;到处运行”的目标。然而&#xff0c;不同的操作系统和硬件架构对容器镜像有不同的要求。例如&#xff0c;Linux 和 Windows 系统有不同的文件系统和系统调用&#…

银河麒麟桌面操作系统修改默认Shell为Bash

银河麒麟桌面操作系统修改默认Shell为Bash &#x1f490;The Begin&#x1f490;点点关注&#xff0c;收藏不迷路&#x1f490; 在银河麒麟桌面操作系统&#xff08;ARM版&#xff09;中&#xff0c;若要将默认Shell从Dash改为Bash&#xff0c;可执行以下步骤&#xff1a; 打开…

谈及医疗和教育真实需求是什么

医疗就是健康&#xff0c;物质基础身体棒&#xff1b; 教育就是心智&#xff0c;心理稳定智慧高。 提示&#xff1a;能让人内心充盈并不断提升自我能力的教育才是高品质的。 全文终结 需求量萎缩对品质端的改变-CSDN博客 与参考资料中的内容以及“贪嗔痴”的关联性进行详细扩…

【C++】vector类的模拟实现

✨ Blog’s 主页: 白乐天_ξ( ✿&#xff1e;◡❛) &#x1f308; 个人Motto&#xff1a;他强任他强&#xff0c;清风拂山冈&#xff01; &#x1f525; 所属专栏&#xff1a;C深入学习笔记 &#x1f4ab; 欢迎来到我的学习笔记&#xff01; 本篇文章参考博客&#xff1a;【C】…

HTML5+CSS+JavaScript剪子石头布游戏

HTML5CSSJavaScript剪子石头布游戏 用HTML5CSSJavaScript剪子石头布游戏实现剪子石头布游戏&#xff0c;游戏有成绩计数&#xff0c;人、机输赢情况&#xff0c;及平局情况。 ✂代表剪刀&#xff0c;▉代表石头&#xff0c;▓ 代表布&#xff0c;给出人机双方的出拳情况 游戏…

对于无人机行业技术、人才、实验环境共享,这事你怎么看?

对于无人机行业技术、人才、实验环境共享这一话题&#xff0c;我认为这是一个具有前瞻性和积极意义的趋势&#xff0c;对于推动无人机行业的健康发展具有重要意义。以下是我对此事的详细看法&#xff1a; 一、技术共享促进创新与发展 1. 加快技术创新&#xff1a;技术共享能够…

web前端面试中拍摄的真实js面试题(真图)

web前端面试中拍摄的真实js面试题&#xff08;真图&#xff09; WechatIMG258.jpeg WechatIMG406.jpeg WechatIMG407.jpeg WechatIMG922.jpeg WechatIMG1063.jpeg © 著作权归作者所有,转载或内容合作请联系作者 喜欢的朋友记得点赞、收藏、关注哦&#xff01;&#xff01;…