STL--模板和容器
2013-07-31 14:56
274 查看
函数模板
#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>
相关文章推荐
- C++ STL模板与容器 知识 初学 小结 ( 一 )
- C++ STL模板与容器 知识 初学 小结 ( 三 )
- 使用模板省略号参数模仿 STL 容器的 emplaceback
- STL 清除模板容器 clear.h
- STL模板和容器(1)
- C++面试笔记--STL模板与容器
- NOIP复赛复习(七)STL容器与字符串模板
- NOIP复赛复习(七)STL容器与字符串模板
- STL1 容器、pair 模板、容器适配器
- C++STL模板容器(一)
- STL 的容器的清除模板 clear.h
- STL常用容器模板
- C++STL模板容器(二)
- C++STL模板容器(三)
- C++STL模板容器(四)
- C模板实现STL容器中的vector
- STL模板容器
- c++的STL模板库中3种容器类:vector,list,deque的比较
- 面试宝典9,10,11--STL模板与容器;面向对象;继承与接口
- C++ STL模板与容器 知识 初学 小结 ( 二 )