C++ STL的非变易算法是一组不破坏操作数据的模板函数,用来对序列数据进行逐个处理、元素查找、子序列搜索、统计和匹配。非变易算法具有极为广泛的适用性,基本上可应用于各种容器。本文详细说明算法函数for_each、find、find_if、adjacent_find以及find_first_of的实现原理及用法并给出例子。...
分类:
编程语言 时间:
2015-07-12 00:18:25
阅读次数:
148
数组:
#include
using namespace std;
//模板函数
template
void dump(T val)
{
cout >>>" << __FUNCTION__ << endl;//内置的宏,打印当前函数的名字
cout << sizeof(val) << ":" << typeid(val).name() << endl;
cout << "<<<<" ...
分类:
编程语言 时间:
2015-07-06 12:18:58
阅读次数:
102
函数模板特template int compare(T v1,T v2){if(v1v2) return 1;else return 0;}template int compare(char * s1,char * s2){ return strcmp(s1,s2);}类模板的特化templa...
分类:
编程语言 时间:
2015-07-05 21:04:47
阅读次数:
153
单一职责原则就一个类而言应该只有一个引起她变化的原因。如果一个类承担的职责过多,就等于把这些职责耦合在一起,一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当变化发生时,会有意想不到的破坏。开放封闭原则实体(类、模板、函数等等)应该可以扩展,但是不可以修改。无论设...
分类:
其他好文 时间:
2015-07-04 12:26:23
阅读次数:
107
首先我们在学习类模板和函数模板时候会遇到这样一个问题:
类模板 与模板类
函数模板与模板函数
这些不仅仅是简单的文字游戏,而是需要我们深深的区分一下才可以理解其中的奥秘!
再回想一下我们在学习C语言的时候也遇到了这样几个类似的名词
函数指针与指针函数
数组指针与指针数组
函数指针即是重点在后边的名词指针,前边的函数只是修饰名词指针的一个定语而已,欧,这是一个语文的奥秘哟...
分类:
其他好文 时间:
2015-06-25 17:39:07
阅读次数:
104
函数模板
一.初探函数模板
函数模板的声明形式:
template//template
可以用class来替代typename,聪语义上讲,二者等价。因此,即使在这里使用class,你也可以用任何类型(前提是该类型提供模板使用的操作)来实例化模板参数。另外还应该注意,这种用法和类型声明不同,也就是说,在声明(引入)类型参数的时候,不能用关键字struct代替typenam...
分类:
编程语言 时间:
2015-06-25 09:02:35
阅读次数:
143
函数模板是通用的函数描述,也就是说,它们使用泛型来定义函数,其中的泛型可用具体的类型(如int或者double)替换。通过将类型作为参数,传递给模板,可使编译器生成该类型的函数。函数模板允许以任意类型的方式来定义函数。例如,可以这样建立一个交换函数的模板:template void Swap(T &...
分类:
编程语言 时间:
2015-06-22 12:25:27
阅读次数:
98
一个例子是1 template 2 class Stack {};在这里我就想起了C语言是怎么弄数据结构的,不得不说模板是很方便的东西。上面的例子是一个类模板,函数模板其实也是类似的。浮点数和类对象是不允许作为非类型模板参数的。对上面这句话的补充:这是历史原因,C++ Templates的作者认为C...
分类:
编程语言 时间:
2015-06-18 13:21:21
阅读次数:
134
模板类 template stack {...} 的构造函数应该写作stack而不是stack,经作者这么一说我在注意到这件事情。模板的特化先说说函数模板。函数模板只能全特化,不能偏特化,并且特化的模板函数相比于等价模板函数优先,但是和非模板函数相比非模板函数优先。 1 #include 2 3 ....
分类:
编程语言 时间:
2015-06-16 22:38:35
阅读次数:
190
模板模板是泛型编程的基础,能够处理在编译时不知道类型的情况(1)模板函数模板函数(function template)一个模板函数就是一个公式,可以用来生成针对特定类型的函数版本,如下compare模板的例子1 template 2 int compare(const T&v1,const T&v2...
分类:
编程语言 时间:
2015-06-13 06:18:17
阅读次数:
288