lamp和lnmp wordpress镇江整站优化

diannao/2026/1/18 0:29:26/文章来源:
lamp和lnmp wordpress,镇江整站优化,网站假备案举报,绿色网站风格一 C 模板介绍#xff1f; C 为什么引入模板#xff1f; 我的理解是#xff1a; C 引入模板的概念#xff0c;是为了复用重复的代码#xff0c;当某些代码除了操作的数据类型不同以外#xff0c;其他逻辑全都相同#xff0c;此时就适合采用模板的方式。 定义模板类或者…一  C 模板介绍 C 为什么引入模板 我的理解是 C 引入模板的概念是为了复用重复的代码当某些代码除了操作的数据类型不同以外其他逻辑全都相同此时就适合采用模板的方式。 定义模板类或者模板函数时只是定义了一个代码的架子使用时需要配合上实际的数据类型数据类型可以是基本数据类型也可以是用户自定义的类型。 官方一点的说法 所谓模板实际上是建立一个通用函数或类其类内部的类型和函数的形参类型不具体指定用一个虚拟的类型来代表。这种通用的方式称为模板。 模板是泛型编程的基础,泛型编程即以一种独立于任何特定类型的方式编写代码。 这种模板的设计在许多编程语言中是由类似的比如 Java 、Scala 中都有模板的概念。 二  class template 类模板 类模板例子 // complex.h templatetypename T class Complex { public:Complex(T re 0, T im 0):m_re(re), m_im(im){}Complex operator(const Complex other);T real() const{return m_re;}T imag() const{return m_im;}private:T m_re;T m_im; };templatetypename T ComplexT ComplexT::operator(const Complex other) {this-m_re other.m_re; // 任意一个类都是自己的 friend class所以可以使用 private 成员变量this-m_im other.m_im;return *this; }// main.cpp #includecomplex.hint main() {Complexdouble c1(1, 2);Complexint c2(1.1, 2.2);Complexfloat c3(1.1, 2.2);return 0; }上面是一个复数 Complex模板类的简单实现。 三  function template 函数模板 // complex.h templatetypename T class Complex { public:Complex(T re 0, T im 0):m_re(re), m_im(im){}bool operator(const Complex other) const{if(this-m_re other.m_re){return true;}else if(this-m_re other.m_re){return false;}else{if(this-m_im other.m_im){return true;}else{return false;}}}T real() const{return m_re;}T imag() const{return m_im;}private:T m_re;T m_im; };// main.cpp #include iostream #includecomplex.h// 模板函数 templatetypename T const T myMin(const T a, const T b) {return a b ? a : b; }int main() {int a1 11;int b1 22;std::cout myMin(a1, b1) std::endl;double a2 1.1;double b2 2.2;std::cout myMin(a2, b2) std::endl;Complexint c11(11, 2);Complexint c12(1, 22);auto cc myMin(c11, c12);std::cout cc.real() , cc.imag() std::endl;return 0; } 以上代码定义了一个模板函数 myMin 一个模板类 Complex自定义了一个 operator 成员函数。 从代码中我们发现一个问题模板类要用尖括号指明实际的元素类型而模板函数并不需要尖括号指明实际的元素类型。这是因为在 C 中模板函数在调用时可以通过传入的实参推断出形参的类型因而不需要指明实际的元素类型。 模板函数 myMin 传入的类型需要有比较的能力c 基本类型天然就具有比较的能力而用户自定义类型需要实现 operator 成员函数才能在编译到 那行代码时能够通过若是自定义类型没有实现 operator 成员函数时编译会出现错误。 四  member template 成员模板 成员模板也是一种函数模板只不过针对的是构造函数的模板。 // base.h class Base2 {};class Derive2:public Base2 {};class Base3 {};class Derive3:public Base3 {};// my_pair.h templatetypename T1, typename T2 class MyPair { public:typedef T1 firstArgumentType;typedef T1 secondArgumentType;MyPair():first(T1()), second(T2()){}MyPair(const T1 arg1, const T2 arg2):first(arg1), second(arg2){}// 成员模板templatetypename U1, typename U2MyPair(const MyPairU1, U2 other):first(other.first),second(other.second){} public:T1 first;T2 second; };// main.cpp #includemy_pair.h #includebase.hint main() {MyPairBase2, Base3 pair1;MyPairDerive2, Derive3 pair2;MyPairBase2, Base3 pair3(pair2);return 0; } 五  模板特化specialization与偏特化partial specialization 1. 模板特化 specialization 模板特化指得是将模板类或者模板函数特化到某些特定的指定类型使得在编译器编译时实际编译执行的代码是特化后的版本。 // my_hash.h #includeiostream #includeiostreamtemplate class T struct my_hash {T operator()(T x){std::cout template class T struct my_hash std::endl;return x;} };// 以下为三个特化版本 template struct my_hashint {int operator()(int x){std::cout template struct my_hashint std::endl;return x;} };template struct my_hashchar {char operator()(char x){std::cout template struct my_hashchar std::endl;return x;} };template struct my_hashlong {long operator()(long x){std::cout template struct my_hashlong std::endl;return x;} }; // main.cpp#includemy_hash.hint main() {std::cout my_hashstd::string()(abcd) std::endl;std::cout my_hashchar()(a) std::endl;std::cout my_hashint()(66) std::endl;std::cout my_hashlong()(6666) std::endl;return 0; } 输出 2. 模板偏特化partial specialization 2.1  个数偏特化 模板的个数变化时的特化版本 // my_vector.h #includeiostreamtemplatetypename T, typename Alloc class my_vector { public:my_vector(){std::cout templatetypename T, typename Alloc class my_vector std::endl;} };templatetypename Alloc class my_vectorbool, Alloc { public:my_vector(){std::cout templatetypename Alloc class my_vectorbool, Alloc std::endl;} };// main.cpp #includemy_vector.hint main() {my_vectorstd::string, std::allocatorstd::string vec1;my_vectorbool, std::allocatorstd::string vec2;return 0; } 输出 2.2 范围偏特化 通过特化模板类型的指针来实现指针的特化 // e.h #includeiostreamtemplatetypename T class E { public:E(){std::cout templatetypename T class E std::endl;} };templatetypename T class ET* { public:E(){std::cout templatetypename T class ET* std::endl;} };// main.cpp #includee.hint main() {Estd::string e1;Estd::string* e2;return 0; } 输出 六  模板模板参数template template parameter 模板模板参数其实就是模板的其中参数又是另外一个模板参数示例代码如下 XCLS 类 的第一个模板参数是 T 第二个模板参数是一个模板类 Container我们可以定义一个 XX 模板类来组合使用 XCLS 将 XX 传入即可 也可以使用容器类 list  传入但是如果直接传入编译是会出错的比如下面 XCLSstd::string, std::list xcls3; 编译不过编译不过的原因是std::list 实际上是两个模板参数编译器检查时发现少给了一个模板参数 _Alloc 所以编译不过。  templatetypename _Tp, typename _Alloc std::allocator_Tp class list; 可以通过如下定义 Lst 来将模板类 list 的模板参数限定为 一个 templatetypename T using Lst std::listT, std::allocatorT; // xcls.h #includeiostreamtemplatetypename T, templatetypename U class Container class XCLS { public:XCLS(){std::cout templatetypename T, templatetypename U class Container class XCLS std::endl;} private:ContainerT c; };templatetypename T class XX { public:XX(){std::cout templatetypename T class XX std::endl;} };// main.cpp #includexcls.hint main() { // 模板模板的参数使用XCLSstd::string, XX xcls1;XCLSstd::string, Lst xcls2;// XCLSstd::string, std::list xcls3; 编译不过return 0; } 输出

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

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

相关文章

重庆市建筑工程信息官方网站好的网站域名

前言 菜某的总结,如有错误和补充欢迎评论指正。 内容仅供学习使用,切勿用于非法用途。 支付篡改的存在位置与影响 首先他的危害不言而喻,几乎任何一个拿出来都能给企业带来巨大的损失。 他出现的地方也是十分的广泛,从某种意…

网站城市跳转怎么做wordpress 小说

https://www.xin3721.com/eschool/python.html惰性求值在开始介绍今天要讲的知识之前,我们想要理解严格求值策略和非严格求值策略之间的区别,这样我们才能够深有体会的明白为什么需要利用这个技术。首先需要说明的是C#语言小部分采用了非严格求值策略&am…

嘉兴网站专业制作前端开发语言有哪些

7. JavaScript 字符串函数 转载于:https://www.cnblogs.com/yuxia/p/3360824.html

保定网站建设解决方案广告设计公司哪家好

ABP入门系列目录——学习Abp框架之实操演练源码路径:Github-LearningMpaAbp 这一章节将通过完善Controller、View、ViewModel,来实现展现层的增删改查。最终实现效果如下图: 展现层最终效果 一、定义Controller ABP对ASP.NET MVC Controlle…

建设银行永泰支行网站北京工商注册网上核名

题干:某部队进行新兵队列训练,将新兵从一开始按顺序依次编号,并排成一行横队,训练的规则如下:从头开始一至二报数,凡报到二的出列,剩下的向小序号方向靠拢,再从头开始进行一至三报数…

网站的命名规则潍坊高新区建设局门户网站

1 概述 XMODEM协议是一种使用拨号调制解调器的个人计算机通信中广泛使用的异步文件运输协议。这种协议以128字节块的形式传输数据,并且每个块都使用一个校验和过程来进行错误检测。使用循环冗余校验的与XMODEM相应的一种协议称为XMODEM-CRC。还有一种是XMODEM-1K&am…

seo站长工具箱深圳外贸公司集中在哪

tar命令可以用来压缩打包单文件、多个文件、单个目录、多个目录。Linux打包命令_tartar命令可以用来压缩打包单文件、多个文件、单个目录、多个目录。常用格式:单个文件压缩打包 tar czvf my.tar.gz file1多个文件压缩打包 tar czvf my.tar.gz file1 file2,...(file…

汕尾手机网站设计奇网企业网站管理系统

1.说明:在WPF中,文件下载时需要显示下载进度,由于系统自带的条型进度条比较占用空间,改用圆形的进度条,需要在DrawingVisual上呈现。 运行的效果如图: private Point GetPointOnCir(Point CenterPoint, double r, doub…

做网站建设注册商标是多少类建设公司网站的好处

大家好,今天我们的主角是MyBatis,作为当前国内最流行的ORM框架,是我们这些crud选手最趁手的工具,赶紧来看看面试都会问哪些问题吧。基础1.说说什么是MyBatis?MyBatis logo先吹一下:Mybatis 是一个半 ORM(对…

网站功能调研方又圆网站建设

描述一下Vue.js的响应式数据绑定原理。 答案: Vue.js 使用 Observer、Compile 和 Watcher 三个组件来实现响应式数据绑定。Observer 负责监听数据对象的属性变化,Compile 负责解析模板指令并建立依赖关系,Watcher 则负责在数据变化时执行相应…

如何修改网站备案信息哪个网站做的最好

目录 1.基本概念 2.创建线程方式 2.1直接建立线程 2.2实现Runnable接口 3.3实现Callable接口 3.4 了解Future接口 Future模式主要角色及其作用 3.5实例化FutureTask类 3.实现线程安全 3.1定义 3.2不安全原因 3.3解决方案 3.4volatile与synchronized区别 4.极端情…

长春市建设工程造价管理协会网站wordpress wampserve

方法一:清空构建目录 重新设置一个新的构建目录(影子目录),或者清空当前目录的所有文件即可 方法二:修改配置文件(不推荐) 网上大部分的解决方案都是这个,直接打开找到并文件msvc…

dede中英文企业网站建设项目公告网站

在Python编程中,我们经常需要处理列表(list)。对于创建和操作这些数据结构,Python提供了很多强大的工具和语法糖,其中最引人注目的特性之一就是列表推导式(List Comprehension)。本文将深入探讨…

网站里面如何在新闻列表上显示hot微信公众平台开发商

文章目录 优先级队列的使用大堆小堆**注意** 优先级队列的模拟实现pushpopsizeemptytop 仿函数仿函数是什么pushpop 仿函数结合优先级队列的优势 优先级队列的使用 优先级队列本质是就是完全二叉树,是个堆.我们可以用优先级队列来取出一段序列中的前N个最大值. priority_queue…

温州网站建网络项目设计方案

需要对 OpenSSH 服务器和客户端进行相应配置。以下是具体步骤: 配置 OpenSSH 服务器的加密算法 1. 编辑 OpenSSH 服务器的配置文件: 打开 sshd_config 文件: sudo nano /etc/ssh/sshd_config2. 设置加密算法(Ciphers&#xff…

微信上微网站怎么做的wordpress官使用方法

文章目录 前言一、算数运算符二、赋值运算符()1.赋值运算符()2.复合赋值运算符 总结 前言 两种非常基础的运算符,看一下就懂,不需要过多的去深究细节 一、算数运算符 稍微着重看下 除法/ (不要…

申请专利的网站淘宝 网站开发 退货

学习框架&#xff0c;刚开始的时候最烦的就是一些配置文件&#xff0c;有很多需要配置的东西&#xff0c;今天把这些配置文件信息稍微整理一下&#xff0c;以后说不定会用的到。 web.xml文件 <?xml version"1.0" encoding"UTF-8"?> <web-app xm…

做电子外贸网站哈尔滨seo搜索排名优化

知识点总结 第一章&#xff1a;软件工程概述 1、软件的定义&#xff1a;在运行中能提供所希望的功能与性能的程序使程序能够正确运行的数据及其结构描述软件研制过程和方法所用的文档。 2、软件危机&#xff1a;软件开发的生产率远远不能满足客观需要。开发的软件产品往往不能…

广州网站建设推荐乐云seocms建站系统 下载

为什么80%的码农都做不了架构师&#xff1f;>>> 针对移动互联网应用的网络建设和优化 截至2013年3月,移动互联网的人均上网时长和PC互联网相比差距已经扩大了29%.PC互联网向移动端迁移的趋势进一步凸显.小米是一家专注于iPhone和Android等新一代智能手机软件…

荆州公司做网站织梦转WordPress插件

Linux零基础入门 列出文件/文件夹新建/切换路径查看当前路径重命名或者移动文件夹拷贝文件/文件夹删除文件夹设置环境变量编辑文本文件压缩和解压查看cpu的信息查看/杀死进程查看进程的CPU和内存占用重定向日志场景一场景二场景三场景四 列出文件/文件夹 命令&#xff1a;Ls(L…