STL--模板和容器

来源:互联网 发布:公司网络管理方案 编辑:程序博客网 时间:2024/06/07 22:06

函数模板

#include <stdio.h> //int max(int a,int b)//{//return a > b ? a : b;//}////char max(char a,char b)//{//return a > b ? a : b;//}////float max(float a,float b)//{//return a > b ? a : b;//}template<typename T>//或者  template<class T>T max(T a, T b){ return a>b? a:b; }void main(){int iMax = max(3,5);//调用int max(int a, int b);char chMax = max('w','d');      //调用char max(char a, char b);float fMax = max(2.7f, 1.3f);//调用float max(float a, float b);}


类模板

#include <stdio.h> //class CMax//{//private://int  m_a;//int  m_b;////public://CMax(int a, int b)//{//m_a = a;//m_b = b;//}////public://int GetMax()//{//return m_a>m_b ? m_a : m_b;//}//};template<typename T>//或者template<class T>class CMax{private:T  m_a;T  m_b;public:CMax(T a, T b){m_a = a;m_b = b;}public:T GetMax(){return m_a>m_b ? m_a : m_b;}};void main(){CMax<int> maxInt(3,5);//需要指定类型int iMax = maxInt.GetMax();CMax<char> maxChar('w', 'd');char chMax = maxChar.GetMax();CMax<float> maxFloat(2.7f,1.3f);float fMax = maxFloat.GetMax();}

****************************************

可以定义多种类型的形参。

template<typename T1, typename T2>

class CTest

{...};

对象实例化时:

CTest testA<int, float>;

CTest testB<double, string>


 

 

 

原创粉丝点击