“偷懒”和“一劳永逸”的思想促进了发展,所以STL、BOOST这样的编程方式应会得到发展。 STL: sort(X):X=,,,,,…… find(Y):Y=,,,,,…… …… BOOST: X、Y、Z……统统转成数据; 穿(X):X=衣服 ...
分类:
其他好文 时间:
2015-11-16 12:41:40
阅读次数:
112
1. 主版本模板类 首先我们来看一段初学者都能看懂,应用了模板的程序: 1 #include 2 using namespace std; 3 4 template 5 class A{ 6 public: 7 void function(T1 value1, T2 value2){ ...
分类:
编程语言 时间:
2015-09-17 14:57:50
阅读次数:
313
C++程序是一些类型和函数,编程就是设计类型和函数,然后将它们按C++的程序结构组织起来。由于事物的相似性,设计的类型和函数有时也表现出相同性。将这些相似的类型和函数归纳起来构成一个类簇和函数簇,用一种统一的方式来编程就是模板编程。由模板可以得到一系列的相似类型或相似函数,这些相似类型和相似函数涉及...
分类:
编程语言 时间:
2015-09-08 12:11:12
阅读次数:
304
一、类型转换与模板类型参数模板与函数调用一样,使用传递给模板的实参来初始化模板的形参,只是这个参数是模板参数,且通常是类型参数,在模板编程中,需要有一个很重要的思维转换:非模板编程中,处理的通常是变量,变量的类型是变量的属性,而在模板编程中,处理的更多的是类型本身,我们可以将类型本身作为参数来传递,...
分类:
编程语言 时间:
2015-09-04 12:33:00
阅读次数:
237
编程题#3: 整数的输出格式来源: POJ(Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)注意: 总时间限制: 1000ms 内存限制: 1000kB描述利用流操纵算子实现: 输入一个整数,先将该整数以十六进制输出,然后再将该整数以10个字符的宽度输出,宽度不足时...
分类:
编程语言 时间:
2015-09-02 00:18:36
阅读次数:
302
编程题#2: 实数的输出格式来源: POJ(Coursera声明:在POJ上完成的习题将不会计入Coursera的最后成绩。)注意: 总时间限制: 1000ms 内存限制: 1000kB描述利用流操纵算子实现: 输入一个实数,先以非科学计数法输出,小数点后面保留5位有效数字;再以科学计数法输出,小数...
分类:
编程语言 时间:
2015-09-02 00:06:57
阅读次数:
252
类模板中头文件和源文件分离的编译问题1、在泛型编程时,声明和实现要放置在一起(因为某些编译器不支持分离)2、非泛型编程声明和实现分开可以为模板指定默认类型templateclass Stack{}Stack stack;//Stack stack;//stack is a stack for in....
分类:
其他好文 时间:
2015-08-16 21:02:04
阅读次数:
112
模板编程中如果要特化或偏特化(局部特化)一个类模板,需要特化该类模板的所有成员函数。类模板中大多数成员函数的功能可能是一模一样的,特化时我们可能只需要重新实现1、2个成员函数即可。在这种情况下,如果全部重写该模板类的所有成员函数,不但会增加工作量,也不利于代码的维护。例如下面的类模板A,只有在模板参...
分类:
编程语言 时间:
2015-07-09 13:02:27
阅读次数:
131
名称的分类1. 受限名称:前面有::运算符成员访问运算符。比如this->var2. 依赖型名称:以某种方式依赖于模板参数。比如std::vector::iterator更详细的分类见P116。名称查找 1 int x; 2 3 class B 4 { 5 public: 6 int i;...
分类:
编程语言 时间:
2015-06-28 14:09:22
阅读次数:
177
当我们越来越多的使用C++的特性,将越来越多的问题和事物抽象成对象时,我们不难发现:很多对象都具有共性。比如数值可以增加、减少;字符串也可以增加减少。它们的动作是相似的,只是对象的类型不同而已。C++提供了“模板”这一特性,可以将“类型”参数化,使得编写的代码更具有通用性。因此大家都称模板编程为“通...
分类:
编程语言 时间:
2015-06-27 11:19:51
阅读次数:
134