当前位置: 首页 > news >正文

大好网站app推广之家

大好网站,app推广之家,sem是什么的缩写,如何查网站的外链泛型编程#xff1a;编写的是与类型无关的通用代码#xff0c;是代码复用的一种手段#xff0c;模板是泛型编程的基础。 1.函数模板#xff1a;类型参数化#xff0c;增加代码复用性。例如对于swap函数#xff0c;不同类型之间进行交换都需要进行重载#xff0c;但是函数…       泛型编程编写的是与类型无关的通用代码是代码复用的一种手段模板是泛型编程的基础。 1.函数模板类型参数化增加代码复用性。例如对于swap函数不同类型之间进行交换都需要进行重载但是函数体不变就可以体现模板的优越性。 模板参数两种给出方法1.自动类型推导2.显示类型确定 #includeiostream using namespace std;//都是进行交换 //不同类型参数的重载代码冗余复用性低 //模板是将类型当作参数进行传递//函数模板 template typename T void Swap(T a, T b) {cout typeid(T).name() endl;T tmp a;a b;b tmp; }void test01() {int i1 10, i2 20;char c1 a, c2 b;double d1 1.5, d2 5.1;Swap(i1, i2);//自动类型推导Swapchar(c1, c2);//显示类型指定Swapdouble(d1, d2);cout i1 i1 i2 i2 endl;cout c1 c1 c2 c2 endl;cout d1 d1 d2 d2 endl; }void main() {test01();system(pause); } 在自动类型推导中T类型必须一致不然出现二义性。  解决方案1 void test02() {int a 10;//4字节double b 1.23;//8字节Swap(a, (int)b);//Swap((double)a, b);//报错 涉及引用修改了原空间范围Swapint(a, (int)b); } 解决方案2 template typename T1, typename T2 void Swap(T1 a, T2 b) {cout typeid(T1).name() endl;T1 tmp a;a b;b tmp; } 另一个例子 #includeiostream using namespace std;templatetypename T T Func(T a, T b) {T value a b;return value; }void test01() {int a 10;double b 1.35;Func(a, (int)b);Func((double)a, b);//不修改原空间大小可以强转Funcint(a, b); }void main() {test01();system(pause); } 在调用函数模板时并不是直接执行函数模板在编译器底层模板会根据不同的类型传入生成不同的模板函数。所以母体就是函数模板实际执行的是模板函数。所以模板看起来比较简洁但是执行效率不高。 模板实例化调用函数模板生成特定版本函数的过程。隐式实例化-模板类型推导显式实例化通过类型确定。 注意模板不会进行隐式类型转换也就是类型的传入不能产生二义性。普通函数支持隐式类型转换。 当函数模板和普通函数都匹配调用时会采用最佳匹配原则。 #includeiostream using namespace std;templatetypename T T Func(T a, T b) {T value a b;return vale; }int Func(int a, int b) {int value a b;return value; }void test01() {Func(1, 2);//调上面Func(1.1, 2.2);//调下面Func(a, b);//调下面Funcint(a, b);//调下面Funcint(1, 2);//调下面Func(1, 2.1);//调上面 } 类模板类中的数据类型参数化就可以得到类模板。注意函数模板的每一个成员函数在类外实现时都是函数模板需要带上templatetypename T在作用域限定符中也要加上T。 c的类中需要常量可以用这三种方法给出宏定义、 枚举私有成员变量、const常量(私有成员变量)。 #define AAA 8enum { BBB8};const int CCC 8; 模板类的参数可以是一个已经实例化的模板类例如使用vector实现二维数组。 vectorvectorint arr; 类模板实例化时需要指定参数类型它不能推导类型利用类名数据类型 对象名来实例化。 类模板和函数模板都可以用于处理自定义数据类型自定义类需要用到运算符重载。 内置类型的零初始化固定写法系统自动生成不会发生隐式类型转换。其实就是赋各种0值。 零初始化也可以用于类模板用于自定义数据类型。比较灵活。零初始化语法T 变量名 T(); 调动默认构造函数或者全缺省构造函数进行赋值。 #includeiostream using namespace std;void main() {int a int();char ch char();double d double();float f float();system(pause); } 类模板不支持分离编译类模板的成员函数的创建时机在调用时分文件编写时链接不到所以一般通过包含.cpp或者.hpp声明和定义放一起的方式来给出。 extern 关键字让全局变量在同一工程下被不同的.cpp文件外部引入并使用。 STL:标准模板库开个头 六大组件容器、算法、仿函数、迭代器、适配器配接器、空间配置器。 STL缺点更新慢、不支持线程安全、追求效率导致内部复杂、存在代码膨胀的问题。但是作为大佬造好的轮子不会不行 P.J.版本对应vc6.0    SGI版本对应STL源码剖析。 #includeiostream #includelist using namespace std;void test01() {listint mylist;for (int i 0; i 10; i){mylist.push_back(i);}for (auto e : mylist){cout e -;}cout over. endl;for (listint::iterator it mylist.begin(); it ! mylist.end(); it){cout *it -;}cout over.endl; }void main() {test01();system(pause); }
http://www.w-s-a.com/news/675539/

相关文章:

  • 如何用微信做网站免费设计logo网站有哪些
  • 服务平台型网站余姚网站定制
  • 网站搭建联系方式太平阳电脑网网站模板
  • 请简述网站制作流程html5网络公司网站模板
  • 海尔集团企业网站建设分析重庆市建设银行网站
  • 介绍公司的网站有哪些广西壮族自治区
  • 网站做rss wordpress9 1短视频安装软件
  • 网站建设价格西安室内设计网站排行榜前十名知乎
  • 用nas建设服务器网站用vs做音乐网站
  • 天津市武清区住房建设网站网站自适应框架
  • 制作移动网站公司网站开发职业规划
  • 网站头部怎样做有气势wordpress 页面 锚
  • 秦皇岛网站建设系统推荐个人网站免费制作
  • 我做夫人那些年网站登录wordpress 扫码付费
  • 网站关键词代码怎么做公司 网站建设
  • 哈尔滨多语言网站建设wordpress分类链接
  • 购物网站项目介绍软件开发流程的五大步骤
  • 做的网站怎么放在网上2008 iis搭建网站
  • 网站维护服务公司上海兼职网站制作
  • 企业做网站需要多少钱湘潭九华网站
  • 嘉兴建站服务微营销官网
  • 比较好的网页模板网站浦项建设(中国)有限公司网站
  • 有趣的个人网站网页设计与制作的岗位职责
  • 有建设网站的软件吗长沙做网站的公司对比
  • 网站的外链接数中铝长城建设有限公司网站
  • 北京建设网站公司网站建设费用 无形资产
  • 适合seo的建站系统如何建立网页
  • 我想自己建立一个网站给大家分享个永久免费的云服务器
  • 怎样做网站和网站的友情链接官网优化 报价
  • 购买网站空间大小聊城网站空间公司