哪个网站可下载免费ppt为什么电脑打开那个做网站都是那一个

张小明 2026/1/11 19:16:12
哪个网站可下载免费ppt,为什么电脑打开那个做网站都是那一个,上海网站建设高端,前端开发基础知识string类的使用一、auto 关键字#xff1a;简化类型声明的利器二、string 类#xff1a;更安全的字符串处理方案1、常见构造2、容量操作3、访问及遍历操作4、string 类的其他常用操作三、常用遍历1、C11遍历2、迭代器遍历3、for遍历四、string 类的实现原理#xff08;进阶简化类型声明的利器二、string 类更安全的字符串处理方案1、常见构造2、容量操作3、访问及遍历操作4、string 类的其他常用操作三、常用遍历1、C11遍历2、迭代器遍历3、for遍历四、string 类的实现原理进阶传统写法现代写法五、string 类的实际应用场景一、auto 关键字简化类型声明的利器自动类型推导无需显式指定类型编译器根据初始化值确定变量类型简化复杂声明对于迭代器、函数返回值等冗长类型auto能大幅精简代码指针与引用规则声明指针时auto与auto*效果一致如auto p a与auto* p a等价声明引用必须显式添加如auto ref a多变量声明限制同一行声明的多个变量必须为相同类型如auto a 1, b 2合法auto a 1, b 2.0非法使用限制必须在声明时初始化无法单独声明auto x;不能作为函数参数类型如void func(auto x)不合法不建议作为函数返回值类型可能导致类型模糊不能用于声明数组如auto arr[10]不合法#includeiostream#includetypeinfo// 需包含此头文件以使用 typeidusingnamespacestd;intgetNum(){return42;}intmain(){inta10;autoba;// 推导为 intautoca;// 推导为 charautodgetNum();// 推导为 intauto*pa;// 推导为 int*与 auto p a 等价autorefa;// 推导为 int// 打印推导的类型不同编译器输出可能略有差异coutb 的类型typeid(b).name()endl;// intcoutc 的类型typeid(c).name()endl;// charcoutd 的类型typeid(d).name()endl;// intcoutp 的类型typeid(p).name()endl;// int*return0;}二、string 类更安全的字符串处理方案C 标准库的string类封装了字符串的创建、修改和操作相比 C 风格字符数组char*提供了自动内存管理和丰富的成员函数是字符串处理的首选。核心优势自动内存管理无需手动malloc/free或new/delete避免内存泄漏安全性内置越界检查减少缓冲区溢出风险丰富接口提供拼接、查找、截取等便捷操作兼容性支持与 C 风格字符串const char*相互转换动态扩展可自动调整容量以适应字符串长度变化1、常见构造constructor函数名称功能说明string()构造空字符串默认构造string(const char* s)用 C 风格字符串初始化string(const strings)拷贝构造复制已有 string 对象string(size_t n, char c)构造包含 n 个字符 c 的字符串构造包含n个字符c的string类对象#includestringusingnamespacestd;intmain(){string s1;// 空字符串strings2(hello);// 用 C 字符串初始化strings3(s2);// 拷贝构造strings4(5,!);// 5个感叹号!!!!!couts2: s2endl;// 输出hellocouts4: s4endl;// 输出!!!!!return0;}2、容量操作函数名称功能说明size返回有效字符长度推荐使用替代length()empty判断字符串是否为空为空返回trueclear清空有效字符不释放底层内存reserve预留至少 n 个字符的空间提升插入效率resize(n, c)调整有效字符数为 n多余位置用 c 填充一般情况下都是用size()而不是length()2.clear()只是将string中有效字符清空不改变底层空间大小3.resize(n)与resize(n, c)的区别- 前者将多余位置初始化为空字符’\0’- 后者将多余位置初始化为指定字符 c- 若n大于当前容量会扩容若n小于当前长度仅截断不缩容4.reserve(n)仅预留空间不改变有效字符数n 小于当前容量时不做操作#includeiostreamusingnamespacestd;intmain(){strings1(hello world);couts1.size()endl;//11couts1.empty()endl;//0s1.clear();couts1endl;//打印空string s2;s2.reserve(100);couts2.capacity()endl;//111//左(要初始化个数)右(初始化的字符)s2.resize(4,c);couts2endl;//ccccreturn0;}3、访问及遍历操作方式适用场景operator[]通过下标访问支持读写类似数组beginend正向迭代器从首到尾遍历适用于所有 STL 容器begin()指向首字符end()指向尾字符后一位rbeginrend反向迭代器从尾到首遍历rbegin()指向尾字符rend()指向首字符前一位范围forC11 新增简洁遍历所有元素底层基于迭代器#includeiostream#includestringusingnamespacestd;intmain(){strings(hello);// 1. 下标访问cout第2个字符s[1]endl;// es[0]H;// 修改首字符为Hcout修改后sendl;// Hello// 2. 正向迭代器cout正向遍历;for(autoits.begin();it!s.end();it){cout*it ;// H e l l o}coutendl;// 3. 反向迭代器cout反向遍历;for(autoits.rbegin();it!s.rend();it){cout*it ;// o l l e H}coutendl;// 4. 范围 forC11cout范围for遍历;for(charch:s){coutch ;// H e l l o}coutendl;return0;}4、string 类的其他常用操作函数名称功能说明operator字符串拼接支持 string 或 C 字符串append()尾部追加字符串功能类似c_str()返回 C 风格字符串const char*find(sub, pos)从 pos 位置开始查找子串 sub返回起始索引未找到返回string::npossubstr(pos, len)从 pos 位置截取长度为 len 的子串默认截取到末尾compare()比较与字符串 s 的大小返回 0 表示相等#includeiostream#includestringusingnamespacestd;intmain(){string s1hello;string s2world;// 字符串拼接s1 ;s1s2;couts1endl;// 输出hello world// 查找操作size_t poss1.find(world);if(pos!string::npos){cout找到子串位置posendl;// 输出6}// 截取子串string s3s1.substr(6,5);couts3endl;// 输出world// C风格字符串转换constchar*cstrs1.c_str();coutcstrendl;// 输出hello worldreturn0;}三、常用遍历1、C11遍历适用于数组和支持下标访问的容器如 string、vector需要手动控制索引范围。#includeiostream#includestringusingnamespacestd;intmain(){//C98遍历intarray1[]{1,2,3,4,5};for(inti0;isizeof(array1)/sizeof(array1[0]);i){array1[i]*2;}for(inti0;isizeof(array1)/sizeof(array1[0]);i){coutarray1[i] ;}coutendl;return0;}2、迭代器遍历迭代器是 STL 容器的通用遍历方式适用于所有容器包括不支持下标访问的容器如 list、map 等。![[QQ20251203-213626.png]]#includeiostream#includestringusingnamespacestd;intmain(){strings1(hello world);//正向迭代器//string::iterator it s1.begin();autoits1.begin();while(it!s1.end()){cout*it ;it;}coutendl;//反向迭代器//string::reverse_iterator rit s1.rbegin();autorits1.rbegin();while(rit!s1.rend()){cout*rit ;rit;}coutendl;conststrings2(hello world);//const正向迭代器//string::const_iterator cit s2.begin();autocits2.begin();while(cit!s2.end()){cout*cit ;cit;}coutendl;//const反向迭代器//string::const_reverse_iterator rcit s2.rbegin();autorcits2.rbegin();while(rcit!s2.rend()){cout*rcit ;rcit;}return0;}3、for遍历一种简洁的遍历方式自动迭代容器中所有元素底层基于迭代器实现。语法格式for(元素类型 变量名:容器名){// 循环体}#includeiostream#includestringusingnamespacestd;intmain(){// 数组遍历intarray2[]{1,2,3,4,5};for(autoe:array2)// 使用引用避免拷贝支持修改元素e*2;for(autoe:array2)coute ;// 输出2 4 6 8 10coutendl;// 字符串遍历stringstr(hello world);for(autoch:str){coutch ;// 输出h e l l o w o r l d}coutendl;return0;}四、string 类的实现原理进阶了解 string 类的实现有助于更好地理解其特性下面展示两种经典的实现方式传统写法通过显式分配和释放内存实现深拷贝确保每个对象拥有独立的字符串资源classString{public:// 构造函数String(constchar*str){if(nullptrstr){assert(false);return;}_strnewchar[strlen(str)1];// 分配空间包含结束符strcpy(_str,str);// 拷贝内容}// 拷贝构造函数String(constStrings):_str(newchar[strlen(s._str)1]){strcpy(_str,s._str);}// 赋值运算符重载Stringoperator(constStrings){if(this!s)// 避免自赋值{char*pStrnewchar[strlen(s._str)1];strcpy(pStr,s._str);delete[]_str;// 释放旧空间_strpStr;// 指向新空间}return*this;}// 析构函数~String(){if(_str){delete[]_str;_strnullptr;}}private:char*_str;// 存储字符串};现代写法通过交换临时对象的资源简化代码利用临时对象的生命周期自动释放内存classString{public:// 构造函数String(constchar*str){if(nullptrstr){assert(false);return;}_strnewchar[strlen(str)1];strcpy(_str,str);}// 拷贝构造函数现代写法String(constStrings):_str(nullptr){StringstrTmp(s._str);// 创建临时对象swap(_str,strTmp._str);// 交换资源}// 赋值运算符重载现代写法Stringoperator(String s)// 传值参数会触发拷贝构造{swap(_str,s._str);// 交换资源临时对象会自动释放旧资源return*this;}// 析构函数~String(){if(_str){delete[]_str;_strnullptr;}}private:char*_str;};五、string 类的实际应用场景文本处理日志记录、配置文件解析、字符串格式化用户交互命令行输入输出、GUI 文本控件网络编程HTTP 协议处理、数据报文组装与解析文件操作路径处理、文件内容读写数据转换数值与字符串的相互转换掌握auto和string是 C 开发的基础合理使用能显著提升代码简洁性和安全性。实际开发中建议优先使用标准库提供的string而非 C 风格字符串减少内存管理风险。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站建立要多少钱传智播客php网站开发实例教程

Swagger2Word终极指南:一键将API文档转为专业Word格式 【免费下载链接】swagger2word 项目地址: https://gitcode.com/gh_mirrors/swa/swagger2word 还在为API文档管理而烦恼吗?Swagger2Word这款开源神器帮你解决所有文档转换难题!作…

张小明 2026/1/12 6:41:53 网站建设

中国工商银行网站建设商务网站运营与管理

DETR性能分析:从评估指标到精准调优的完整指南 【免费下载链接】detr End-to-End Object Detection with Transformers 项目地址: https://gitcode.com/gh_mirrors/de/detr 在目标检测模型的开发过程中,性能评估指标不仅是模型效果的量化体现&…

张小明 2026/1/11 17:54:56 网站建设

常熟网站建设专业的公司亚洲

辅助计算机毕业答辩8大平台AI生成答案 平台名称 核心功能 处理速度 适用场景 独特优势 Aibiye AI生成人工改写 20分钟 文献综述/降AIGC 组合式处理,AIGC率降幅大 橙篇 语料库改写 即时 开题报告/套话优化 百度学术模式引用真实文献 千笔AI 批量改稿…

张小明 2026/1/11 14:02:32 网站建设

响应式网站是什么软件做的平台运营的主要工作内容

先直接把话说明白: 这篇想写的是—— 大厂游戏引擎里的“物理引擎”:那一层让世界有重量、有碰撞、有手感的系统。 用大白话、带画面感地讲清楚: 物理引擎到底是干嘛的? 游戏里“撞到、掉下去、被击飞”这些效果是怎么来的? 大厂都在物理这块玩什么花活? 物理引擎和渲染…

张小明 2026/1/12 7:10:45 网站建设

免费网站空间 asp.net深圳营销型网站建设服务费用

Easy Rules版本管理完全指南:语义化版本控制在规则引擎中的实战应用 【免费下载链接】easy-rules The simple, stupid rules engine for Java 项目地址: https://gitcode.com/gh_mirrors/ea/easy-rules 掌握Easy Rules版本管理是确保Java规则引擎稳定运行的关…

张小明 2026/1/12 0:52:20 网站建设

在哪个网站可以学做衣服南宁网络推广公司哪家好

提到漏洞挖掘,很多人觉得是 “大神专属”—— 要么找不到合法渠道,要么担心没技术赚不到钱,最后只能在网上瞎逛浪费时间。但其实从新手到高阶,都有适配的挖洞路径:有的能边练边赚,有的能拿高额奖励&#xf…

张小明 2026/1/9 12:02:01 网站建设