最近,看了很多码神级人物的代码,发现其代码很炫酷,尤其对模板的使用,作为小码农,感觉已经落伍了,所以应该发奋图强,好好学习和掌握模板这个东西。
模板是什么呢?有人说一个模板就是一个创建类或函数的蓝图或者公式,什么意思呢?就是说模板是创建类或者函数的母体或生成器,你给一些参数,模板就能够创建出一个类或者函数。
那么模板怎么定义呢?模板定义以关键字template开始,后跟一个模板参数列表,这是一个逗号分隔的一个或者多个模板参数,用<>包围起来。for example:
template <typrname T> int compare(const T &v1, const T &v2) { if (v1 < v2) return -1; if (v1 > v2) return 1; return 0; }
// template_try.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include "iostream" #include "vector" using namespace std; template <typename T> int compare(const T &v1, const T &v2) { if (v1 < v2) return -1; if (v1 > v2) return 1; return 0; } int _tmain(int argc, _TCHAR* argv[]) { cout << compare(1, 0) << endl; vector<int> vec1,vec2; for(vector<int>::size_type ix = 0; ix !=3; ix++) { vec1.push_back(ix+1); vec2.push_back(ix+4); } cout << compare(vec1, vec2) <<endl; return 0; }运行结果:
原文地址:http://blog.csdn.net/helei001/article/details/42233827