淘宝客优惠券网站建设加盟官网wordpress _e函数

pingmian/2026/1/26 22:31:57/文章来源:
淘宝客优惠券网站建设加盟官网,wordpress _e函数,传奇大气网站模板免费下载,做网站麻烦吗模板初阶以及string类使用 模板的简单认识1.泛型编程2.函数模板模板的原理图函数模板格式函数模板实例化非模板函数和模板函数的匹配原则 3.类模板类模板的定义格式类模板的实例化 string1.string简介2.string常用的接口 题目练习1.字符串相加2.字符串里面最后一个单词的长度3.… 模板初阶以及string类使用 模板的简单认识1.泛型编程2.函数模板模板的原理图函数模板格式函数模板实例化非模板函数和模板函数的匹配原则 3.类模板类模板的定义格式类模板的实例化 string1.string简介2.string常用的接口 题目练习1.字符串相加2.字符串里面最后一个单词的长度3.翻转字符串区间 模板的简单认识 1.泛型编程 泛型编程编写与类型无关的通用代码是代码复用的一种手段。模板是泛型编程的基础。 实现加法 //不使用模板只使用函数重载每一个需要的类型都需要写一份函数 int add(int a, int b) {return a b; }double add(double a, double b) {return a b; }int main() {int a1 0;int b1 0;int c1 add(a1, b1);double a2 0.1;double b2 0.5;double c2 add(a2, b2);return 0; }两个函数只有类型上的不同逻辑完全一致能不能写一份表示逻辑的模板让编译器帮我们生成函数呢 2.函数模板 模板的原理图 函数模板格式 templatetypename T1, typename T2,…,typename Tn 返回值类型 函数名(参数列表){} 用函数模板来实现加法 //模板不是具体的函数真正的函数是由编译器去生成的 templatetypename T T add(T a,T b) {return a b; } //typename是用来定义模板参数的关键字也可以用classint main() {int a1 0;int b1 0;int c1 add(a1, b1);double a2 0.1;double b2 0.5;double c2 add(a2, b2);return 0; }函数模板实例化 隐式实例化由编译器依据实参来自行生成。 templatetypename T T add(T a,T b) {return a b; }int main() {int a1 0;int b1 0;int c1 add(a1, b1);//编译器生成int add(int a, int b);double a2 0.1;double b2 0.5;double c2 add(a2, b2);//编译器生成double add(double a, double b);return 0; }显示实例化在函数名后的中指定模板参数的实际类型 下面这个例子不显示实例化就会报错 templatetypename T T add(T a,T b) {return a b; }int main() {int a1 0;double b1 0.5;int c1 add(a1, b1);//模板中两个参数类型是一致的这里一个int一个double没有明确指定编译器无法生成函数return 0; }利用显示实例化解决 templatetypename T T add(T a,T b) {return a b; }int main() {int a1 0;double b1 0.5;double c1 adddouble(a1, b1);//指定生成double add(double a,double b)并调用和正常函数一样这里会进行隐式类型转换return 0; }非模板函数和模板函数的匹配原则 一个非模板函数可以和一个同名的函数模板同时存在而且该函数模板还可以被实例化为这个非模板函数 //专门处理int int add(int a, int b) {return a b; } //通用的函数模板 templatetypename T T add(T a,T b) {return a b; }int main() {int a1 0;int b1 5;int c add(a1, b1);//与非模板函数完全匹配编译器不会生成c addint(a1, b1); //指定编译器生成并调用//两个函数同时存在不冲突 return 0; }对于非模板函数和同名函数模板如果其他条件都相同在调动时会优先调用非模板函数而不会从该模板产生出一个实例。如果模板可以产生一个具有更好匹配的函数 那么将选择模板 //专门处理int int add(int a, int b) {return a b; } // 通用加法函数 templateclass T1, class T2 T1 add(T1 left, T2 right) {return left right; } int main() {add(1, 2); // 与非函数模板类型完全匹配不需要函数模板实例化add(1, 2.0); // 模板函数可以生成更加匹配的版本编译器根据实参生成更加匹配的Add函数return 0; }3.类模板 类模板的定义格式 templateclass T1, class T2, …, class Tn class 类模板名 { // 类内成员定义 }; //和函数模板一样这里并不是真正的类 templateclass T class A { public:A(T a):_a(a){}//演示一下定义声明分离T get(); private:T _a; };// 注意类模板中函数放在类外进行定义时需要加模板参数列表 template class T T AT::get() {return _a; }类模板的实例化 类模板实例化需要在类模板名字后跟然后将实例化的类型放在中即可类模板名字不是真正的类而实例化的结果才是真正的类。 int main() {//A是类名Aint才是类型Aint a(5);Adouble b(5.22);return 0; }string 1.string简介 string是表示字符串的字符串类string类是basic_string模板类的一个实例即typedef basic_stringchar string该类的接口与常规容器的接口基本相同再添加了一些专门用来操作string的常规操作。string是一个顺序容器会自动扩容。 2.string常用的接口 string类中有一个静态成员nposstatic const size_t npos -1; 本文只讲使用不讲底层原理 string类对象的常见构造 函数名称功能说明string() 常用构造空的string类对象即空字符串string(const char* s) 常用用C字符串来构造对象string(size_t n, char c)string类对象中前n个字符初始化为Cstring(const strings) 常用拷贝构造 int main() {string s1; // 构造空的string类对象s1string s2(hello); // 用C格式字符串构造string类对象s2string s3(s2); // 拷贝构造s3return 0; }string类对象的容量操作 函数名称功能说明size_t size()常用返回有效字符数(\0’不算有效字符)size_t length()和size()功能一致size_t capacity()返回可存储有效字符的空间总大小\0’不算bool empty()常用检查是否为空串是返回true否则返回falsevoid clear()常用清空字符串变成空串void reserve(size_t n 0)常用预留空间n大于容量时扩容不然什么都不做void resize(size_t n, char c)n有效字符数时从从字符串尾开始填充c直到字符串满n容量就先扩容再填充n有效字符数时缩短字符串保留前n个字符。 int main() {string s2(hello); cout s2.empty() endl;s2.clear();//调用clear清理cout s2.empty() endl;cout capacity: s2.capacity() endl;s2.reserve(100);//调用reserve预留空间cout reserve_capacity: s2.capacity() endl;s2.resize(50, c);//填充cout s2: s2 endl;s2.resize(10);//缩短到10字符cout s2: s2 endl;return 0; }string类对象的访问及遍历操作 函数名称功能说明(const)char operator ()运算符重载可以像数组一样通过下标访问字符(const_)iterator begin()和end()begin取第一个字符位置的迭代器end取最后一个字符的下一个位置的迭代器大家可以把迭代器想成指针后面使用大家就明白了(const_)reverse_iterator rbegin()和rend()反向迭代器使用和begin()一致方向相反范围forC11支持底层是迭代器 int main() {string s2(hello); //利用[]运算符重载遍历for (int i 0; i s2.size(); i)cout s2[i];cout endl;//利用迭代器进行遍历利用auto自动推导类型//这里是std::string::iteratorauto it s2.begin();while (it ! s2.end()){cout *it;it;}cout endl;//反向迭代器遍历//这里是std::string::reverse_iteratorauto rit s2.rbegin();while (rit ! s2.rend()){cout *rit ;rit;}cout endl;//范围for遍历for (auto ch : s2)cout ch ;cout endl;//修改for (auto ch : s2)cout ch ;return 0; }string类对象的修改操作 函数名称功能说明void push_back(char c)尾插一个字符cstring append(const char* s)尾插一个字符串string operator()常用既可尾插字符串也可单个字符非常好用const char* c_str()常用返回C格式字符串首地址size_t find(char c,size_t pos 0)常用从pos位置开始寻找第一个出现c的位置并返回否则返回npossize_t rfind(char c,size_t pos npos)从pos位置开始向前寻找第一次出现c的位置并返回否则返回npos当pos大于等于长度时从尾开始向前搜索。一般就是用这个函数搜索单个字符最后出现的位置string substr(size_t pos 0, size_t len npos)从pos位置开始截取len个字符如果截取长度大于后面长度就截取到字符串尾部结束然后返回1.string insert (size_t pos, size_t n, char c) 2.string insert (size_t pos, const char* s)1.在pos位置插入n个c 2.在pos位置插入C格式字符串 int main() {string s2(hello ); s2.push_back(w);s2.append(or);s2 l;s2 dd!;cout s2.c_str() endl;cout pos(find): s2.find(w) endl;cout pos(rfind): s2.rfind(d) endl;if (s2.find(k) std::string::npos)cout 没找到 endl;string sub s2.substr(6, 6);cout sub.c_str() endl;//这里相当于头插cs2.insert(0,1,c);s2.insert(2,hello );return 0; }string类非成员函数 函数功能说明string operator()先拷贝一份实现尾插后返回不改变原对象operartor()常用输入运算符重载operator()常用输出运算符重载istream getline (istream is, string str)读取一行字符遇到’\n’才结束bool operator()    (!)进行字符串比较 int main() {string s2(hello ); string s3 s2 world;cout s3: s3 endl;cin s3;cout s3: s3 endl;getchar();getline(cin, s3);//可以读取空格cout s3: s3 endl;string s(hello);string s1(hellO);if (s s1)cout s s1 endl;else if (s s1)cout s s1 endl;else if (s s1)cout s s1 endl;return 0; }题目练习 1.字符串相加 链接 字符串相加 题目要求 题解 class Solution { public:string addStrings(string num1, string num2) {//用来遍历int end1 num1.size()-1;int end2 num2.size()-1;//用来记录进位int flag 0;int sum 0;string str;while(end1 0 || end2 0){//只有不越界的情况才给值否则给0int x1 end10?num1[end1]-0:0;int x2 end20?num2[end2]-0:0;sum flag x1 x2;//这里使用尾插头插效率比较慢str (0sum%10);flag sum/10;end1--;end2--;}//还需要处理一种特殊情况比如91同时结束刚好进位需要补1if(flag 1)str 1;//数据是尾插的需要逆置//reverse属于stl中的算法//只需要传入迭代器区间就能实现逆置reverse(str.begin(),str.end());return str;} };2.字符串里面最后一个单词的长度 链接字符串里面最后一个单词的长度 题目要求 题解 #include iostream #includestring using namespace std;int main() {string str;getline(cin,str);//直接调用rfind找最后一个空格的位置//没有找到说明只有一个单词直接返回长度int pos str.rfind( );if(pos std::string::npos)cout (str.size()) endl;elsecout (str.size()-(pos1)); }3.翻转字符串区间 链接翻转字符串区间 题目要求 题解 class Solution { public:string reverseStr(string s, int k) {int index1 0;int index2 k-1;//每2k个字符中反转前k个字符//abcdefg -前4个反转前2个abcd-bacd,efg-fegwhile(index2 s.size()-1){reverse(s.begin()index1,s.begin()index21);index1 2*k;index2 2*k;}//最后一段小于k的全部反转reverse(s.begin()index1,s.end());return s;} };

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

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

相关文章

专业网站制作企业网站开发速成

Leetcode 2966. Divide Array Into Arrays With Max Difference 1. 解题思路2. 代码实现 题目链接:2966. Divide Array Into Arrays With Max Difference 1. 解题思路 这一题思路上来说其实很简单,想清楚这个问题必然是有序排列之后三个三个组成一组即…

融资平台公司是什么意思seo网站诊断顾问

1、Unittest介绍 为什么要学习单元测试框架 测试用例的组织与运行需要单元测试框架的参与,从而满足不同测试场景的需要,单元测试框架提供了丰富的比较方法:实际结果与预期结果的对比测试结果 单元测试框架提供了丰富的日志:给出测…

都匀网站开发wordpress 获得主题

这是Spring Integration Session 1的后续活动 第一部分是使用Spring Integration的简单Hello World应用程序。 我想通过考虑其他一些方案来进一步介绍它。 因此,对Hello World应用程序的第一个更改是添加网关组件。 要快速重新访问较早的测试程序,请执行…

网上做ps赚钱的网站可信赖的武进网站建设

• 全局作用域,函数作用域 • 作用域链 • 作用域scope: 一个变量的可用范围 • 作用域链scope chain:以当前作用域的scope属性为起点,依次引用每个AO,直到window结束,行成多级引用关系 js作用域ES5 …

域名年费多少网站建设精品网站建设

绝地求生PGC小组赛B组第一轮的比赛即将结束,在刚刚那场决赛圈中NH和17给我们上演了非常精彩的较量,双方战至最后一人,最终由NH击败17收获一鸡,这两支PCL老牌强队总分都超过了40分,晋级胜者组对他们来说压力不大了。新队…

网站首页标题怎么设置网站推广的方法有

系列文章目录 前言 从 2.1.2 版开始,MuJoCo 附带使用 pybind11 以 C 开发的本地 Python 绑定。Python API 与底层的 C API 保持一致。这导致了一些非 Python 代码结构(如函数参数的顺序),但其好处是 API 文档适用于两种语言。 Pyt…

网站设置快捷方式电商平台投诉找哪个部门

文章目录1 伙伴算法页框操作alloc_pages()2 slabslab机制要解决的问题使用高速缓存3 内存管理函数kmallockzallocvmallocvzalloc区别参考文章内核使用struct page结构体描述每个物理页,也叫页框。内核在很多情况下,需要申请连续的页框,而且数…

天津网站在哪里建设wordpress 伪静态 分页

select * from [表A] where id in (select id from [表A] group by id having count(id) >1 )转载于:https://www.cnblogs.com/wuyujie/p/7885017.html

网站资料什么是网络开发

我校有生物学实验教学中心、作物学实验教学中心、水产养殖实验教学中心、动物医学实验教学中心4个国家级实验教学示范中心,10个省级实验教学示范中心。生物学实验教学中心华中农业大学生物学实验教学中心成立于2001年7月,是直属于生命科学技术学院的校级…

做视频图片博客网站营销型设计网站

Mono对gtk做了很努力的封装,即便如此仍然与System.Windows.Form中的控件操作方法有许多差异,这是gtk本身特性或称为特色决定的。下面是gtk常用控件在Mono C#中的一些用法。 Button控件 在工具箱中该控件的clicked信号双击后自动生成回调函数prototype&…

广东省建设厅投诉网站国家icp备案网站

Ubuntu20.04安装ROS Excerpt ubuntu安装方式有两种,一种是安装ubuntu系统,另一种是在windows下安装虚拟机,在虚拟机里安装ubuntu。下面为双系统安装ubuntu(用虚拟机装ubuntu会很卡,bug很多,除非电脑配置极好…

网站建设设计技术方案模板软件开发上海

注解Annotation 一、介绍二、使用三、三个基本的Annotation四、JDK内置的基本注解类型1、Override2、Deprecated3、SuppressWarnings 五、JDK的元注解1、Retention2、Target3、Documented4、Inherited 一、介绍 注解(Annotation)也被称为元数据&#xf…

个人网站 如何做推广做网站放视频

POKT Network(也被称为 Pocket Network)在通证经济模型上完成了重大的改进,不仅将通货膨胀率降至 5% 以下,并使 POKT 通证在 2025 年走向通缩的轨迹上,预计到2024 年年底通货膨胀率将降至 2% 以下。POKT Network 的 “…

襄阳集团网站建设香奈儿电子商务网站建设策划书

大体流程: 步骤: 1.加载数据到缓存中(Buffer Pool): 在进行数据更新时,InnoDB首先会在缓冲池(Buffer Pool)中查找该记录是否已经在内存中。如果记录不在内存中,会将需要更新的数据…

wordpress博客站搭建免费推广网站短视频

说明 bind命令 用于显示和设置命令行的键盘序列绑定功能。通过这一命令,可以提高命令行中操作效率。可以利用bind命令了解有哪些按键组合与其功能,也可以自行指定要用哪些按键组合。 语法 bind(选项)选项 -d:显示按键配置的内容&#xff…

专家库 网站 建设方案湛江论坛建站模板

From: http://www.cppblog.com/elva/archive/2010/08/13/123313.html 因为项目需要,学习了一下RTSP协议,为了防止以后忘记,就把学习过程和成果记载下来。期间参考了一些网上的资料,并分析了VLC的RTSP报文。 RTSP(…

怎么学建网站wordpress打开慢

1。一位工科男在拿到华为实习生offer后的面经干货某211学校,机械学院研究生。不得不说一下,华为的员工们真的是认真做事,因为怕我们担心下班轮不到面试。工作人员特意去休息区告诉我们,不面试完他们不会下班,果然是个爱…

甘肃城乡建设部网站首页人才市场招聘网站

目录 0.环境 1.问题简述 2.分析报错原因 3.解决方法 1)set() 相关语句 2)target_link_libraries() 相关语句 4.参考 0.环境 windows11 、 vs-code 、 qt 、 c、编译器为vs2019-x86_amd64 1.问题简述 项目编译release版本时会报错:报错…

电子商务毕业设计 网站建设太原网页制作招聘网

以Android 11源码下载流程图如下所示: 1. 安装Git和Repo工具 2. 创建一个工作目录 3. 初始化仓库并下载源码 4. 切换到指定的分支 5. 编译源码 具体步骤如下: 安装Git和Repo工具:在Linux或Mac上,可以通过终端运行以下命令安装Gi…

服务器怎么发布网站二手书网站开发需求分析

前言 Axios 是一个基于 Promise 的 HTTP 库,它的概念及使用方法本文不过多赘述,请参考:axios传送门 本文重点讲述下在项目中是如何利用 axios 封装 http 请求。 一、预设全局变量 在 /const/preset.js 中配置预先设置一些全局变量 window.…