1. 泛型编程
泛型编程最初诞生于C++中。目的是为了实现C++的STL(标准模板库)。其语言支持机制就是模板(Templates)。模板的精神其实很简单:参数化类型。换句话说,把一个原本特定于某个类型的算法或类当中的类型信息抽掉,抽出来做成模板参数T。
#include <iostream>
#include<numeric>
#include<vector>
#include<list>
#include<algorithm>
#include<functional>
using namespace std;
class TwiceOver{
public:
bool operator()(int val1,int val2){
return val1==val2/2?true:false;
}
};
class Even{
public:
bool operator()(int val){return !(val%2);}
};
int main()
{
int ia[8]={1,3,6,10,15,21,28,36};
vector<int> vec(ia,ia+8);
list<int> ilist(ia,ia+8);
string sa[10]={"The","light","untonsured","hair",
"grained","and","hued","like","pale","oak"};
vector<string> svec(sa