类模板的使用——参数化类
#include <iostream> using namespace std; template<class numtype> class Compare { public: Compare(numtype a,numtype b) { x=a; y=b; } numtype max( ) { return (x>y)?x:y; } numtype min( ) { return (x<y)?x:y; } private: numtype x,y; }; int main( ) { Compare<int> cmp1(3,7); cout<<cmp1.max( )<<" is the Maximum of two integer numbers."<<endl; cout<<cmp1.min( )<<" is the Minimum of two integer numbers."<<endl<<endl; Compare<float> cmp2(45.78,93.6); cout<<cmp2.max( )<<" is the Maximum of two float numbers."<<endl; cout<<cmp2.min( )<<" is the Minimum of two float numbers."<<endl<<endl; Compare<char> cmp3('a','A'); cout<<cmp3.max( )<<" is the Maximum of two characters."<<endl; cout<<cmp3.min( )<<" is the Minimum of two characters."<<endl; return 0; }
在类模板外定义成员函数
#include <iostream> using namespace std; template<class numtype> class Compare { public: Compare(numtype a,numtype b); numtype max( ); numtype min( ); private: numtype x,y; }; template<class numtype> Compare<numtype>::Compare(numtype a,numtype b) { x=a; y=b; } template<class numtype> numtype Compare<numtype>::max( ) { return (x>y)?x:y; } template<class numtype> numtype Compare<numtype>::min( ) { return (x<y)?x:y; } int main( ) { Compare<int> cmp1(3,7); cout<<cmp1.max( )<<" is the Maximum of two integer numbers."<<endl; cout<<cmp1.min( )<<" is the Minimum of two integer numbers."<<endl<<endl; Compare<double> cmp2(45.78,93.6); cout<<cmp2.max( )<<" is the Maximum of two float numbers."<<endl; cout<<cmp2.min( )<<" is the Minimum of two float numbers."<<endl<<endl; Compare<char> cmp3('a','A'); cout<<cmp3.max( )<<" is the Maximum of two characters."<<endl; cout<<cmp3.min( )<<" is the Minimum of two characters."<<endl; return 0; }
类库中的模板
#include<vector> #include <iostream> using namespace std; int main() { int i = 0; vector<int> v; for( i = 0; i < 10; i++ ) { v.push_back(i);//把元素一个一个存入到vector中 } /* v.clear() 对存入的数据清空*/ for( i = 0; i < v.size(); i++ )//v.size() 表示vector存入元素的个数 { cout << v[i] << " "; //把每个元素显示出来 } cout << endl; return 0; }