[如何学好文言文]HE 1.正确理解一些重点的实词在具体语言环境中的意义; 2.要正确理解一些重点虚词的用法; 3.了解一些常见的文言句式,能够翻译一些重点的语句; 4.了解一些古诗文的基本常识,为阅读...+阅读
C++ 模板基础谈1. 什么是模板模板定义:模板就是实现代码重用机制的一种工具,它可以实现类型参数化,即把类型定义为参数,从而实现了真正的代码可重用性。我们知道,C++ 是一种“强类型”的语言,也就是说一个变量,编译器必须确切的知道它的类型,而模板就是构建在这个强类型语言基础上的泛型系统。2. 模板的语法模板函数template{函数定义}模板类templateclass ...模板的参数可以是类型,或者是一个 int 型的值(或者可以转换为int 型的,比如 bool)。3. 模板的使用显式类型参数:对于模板函数,在函数名后添加。对于模板类,在类后添加隐式类型参数:对于模板函数,如果类型参数可以推导,那么可以省略类型参数表举个例子:templateT max( T a, T b ){ return a( x, y ),由于第一个参数 x 是 int 类型的,那么 ? 这里需要填写什么呢?我们可以很明显的推断出应该是 "int",否则,后面的强类型系统将无法编译这个函数。编译器同样知道 x 的类型,因此它也能推导出“类型参数”,这时候我们调用时就可省略模板参数了。这个推导是按顺序来的,因此如果上面的 y 是其他类型,? 仍然会被推导为 int,如果y无法隐性转换为int,强类型编译时就会报错。5. 类型推导的隐式类型转换在决定模板参数类型前,编译器执行下列隐式类型转换: 左值变换 修饰字转换 派生类到基类的转换 见《C++ Primer》([注2],P500)对此主题的完备讨论。简而言之,编译器削弱了某些类型属性,例如我们例子中的引用类型的左值属性。举例来说,编译器用值类型实例化函数模板,而不是用相应的引用类型。同样地,它用指针类型实例化函数模板,而不是相应的数组类型。它去除const修饰,绝不会用const类型实例化函数模板,总是用相应的非 const类型,不过对于指针来说,指针和 const 指针是不同的类型。底线是:自动模板参数推导包含类型转换,并且在编译器自动决定模板参数时某些类型属性将丢失。这些类型属性可以在使用显式函数模板参数申明时得以保留。6. 模板的偏特化如果我们打算给模板函数(类)的某个特定类型写一个函数,就需要用到模板的偏特化,比如我们打算用 long 类型调用 max 的时候,返回小的值(原谅我举了不恰当的例子):template// 这代表了下面是一个模板函数long max( long a, long b ) // 对于 vc 来说,这里的 是可以省略的{ return a >b ? b : a;}实际上,所谓偏特化,就是代替编译器完成了对指定类型的特化工作,现代的模板库中,大量的使用了这个技巧。7. 仿函数仿函数这个词经常会出现在模板库里(比如 STL),那么什么是仿函数呢?顾名思义:仿函数就是能像函数一样工作的东西,请原谅我用东西这样一个代词,下面我会慢慢解释。void dosome( int i )这个 dosome 是一个函数,我们可以这样来使用它: dosome(5);那么,有什么东西可以像这样工作么?答案1:重载了 () 操作符的对象,比如: struct DoSome { void operator()( int i ); } DoSome dosome;这里类(对 C++ 来说,struct 和类是相同的) 重载了 () 操作符,因此它的实例 dosome 可以这样用 dosome(5); 和上面的函数调用一模一样,不是么?所以 dosome 就是一个仿函数了。实际上还有答案2: 函数指针指向的对象。 typedef void( *DoSomePtr )( int ); typedef void( DoSome )( int ); DoSomePtr *ptr=&func; DoSome& dosome=*ptr; dosome(5); // 这里又和函数调用一模一样了。当然,答案3 成员函数指针指向的成员函数就是意料之中的答案了。8. 仿函数的用处不管是对象还是函数指针等等,它们都是可以被作为参数传递,或者被作为变量保存的。因此我们就可以把一个仿函数传递给一个函数,由这个函数根据需要来调用这个仿函数(有点类似回调)。STL 模板库中,大量使用了这种技巧,来实现库的“灵活”。比如:for_each, 它的源代码大致如下:templatevoid for_each( Iterator begin, Iterator end, Fucntor func ){ for( ; begin!=end; begin++ ) func( *begin...
以下为关联文档:
文言文怎么学好1.怎样学习文言文? 答:这个问题不是三言两语能说清的。但也有一些方法值得借鉴,这些方法的要点是:朗读背诵;分清主次;知识归类;科学的翻译训练;推断的训练。本书提供了一些值得一试...
怎么学好GRE?关于作文 工科生,3.5,也没什么好说的,就推荐好好研究OG,有范例教如何分析文章,如何组织文章。特别是Argument部分,让我对如何写Argument有了比较好的认识。我也参考了一些6.0范文...
如何学好高中地理高中地理前半部分是记为主的,后半部分靠理解为主。前半部分对初中地理依赖很大,所以初中的不能丢。下面几点是我个人的学习方法: 1.多看地图。把初中的地图册找出来,你有发的那...
高中怎样学好地理地理: 作为一门学科,学法上有着与其他学科许多共同点。如:科学的学习态度;勤动脑、勤动手、勤动口;耳到、眼到、口到、手到、心到等;同时还有它独特的学法。其实我们一直强调的就...
怎样学好高中地理1、学自然地理,地球那块,得把地球自转公转 春秋分的几张图记住,能理解最好,个人觉得这部分偏理科有点难懂需自己领悟。然后大气洋流既要记也得理解,大气环流和洋流其实是有相通的...
请问如何学好高中地理这里罗列几个高一上人教版每章的重要插图: 第一章,二分二至时地球的位置与黄赤交角;二分二至日全球的昼长和正午太阳高度分布 第二章,大气的垂直分层;大气的温室效应;冷热不均引起...
怎样学好高中地理啊相信有不少人跟我一样,初中地理没有认真学好,只能到高中再从头来学。其实我觉得,学地理是非常有用的,它与我们的日常生活联系特别密切。学了地理之后,觉得自己长了不少知识。可以...
高中地理如何能学好掌握以下3点基本方法就可以学好高中地理: 1、要学会看地图——立体的地球仪,可以让自己建立立体的思维方法,地理的知识是立体的;平面的行政区图、地形图、气候带分布图、自然资...
怎么才能学好摩登舞1,学习摩登舞必须用我们的大脑去学好与摩登舞相关的知识,重要的知识必须学深学透,完全理解。该记住的必须记牢。学习舞步、进行各种练习都必须理解、记住学习的基本规则和技术...