#include <iostream>
#include <cstdio>
#include <string>
using namespace std;
#if 0
template< class T>
struct iterator_traits
{
typedef typename T::iterator_category iterator_category;
typedef typename T::value_type value_type;
typedef typename T::difference_type difference_type;//表示两迭代器之间的距离
typedef typename T::pointer pointer;
typedef typename T::reference reference;
};
#endif
template<class T>
class iterator<const T*>
{
puclic:
iterator(){cout<<"ok?"<<endl;}
};
int main(void)
{
iterator< const int*> ok;
}
http://www.jb51.net/article/42099.htm
模板类的使用。。。
我就是看的那个偏特化才这么写的 感觉和他没差别啊
#include<iostream>
using namespace std;
template<class T> //声明一个类模板,虚拟类型名为T
class Compare
{
public:
Compare(T a,T b)
{
x=a;
y=b;
}
T max()
{
return(x>y)?x:y;
}
T min()
{
return(x<y)?x:y;
}
private:
T x,y;
};
int main()
{
Compare <int> cmp1(3,7); //定义对象cmp1,用于两个整数的比较
cout<<"Max : "<<cmp1.max()<<endl;
cout<<"Min : "<<cmp1.min()<<endl<<endl;
Compare <float> cmp2(45.89,88.76);//定义对象cmp2,用于两个浮点数的比较
cout<<"Max : "<<cmp2.max()<<endl;
cout<<"Min : "<<cmp2.min()<<endl;
Compare <char> cmp3('a','A'); //定义对象cmp3,用于两个字符的比较
cout<<"Max : "<<cmp3.max()<<endl;
cout<<"Min : "<<cmp3.min()<<endl;
return 0;
}