【C++笔记】C++函数模版与类模版

以下内容仍在更新完善...

函数模版

代码示例:用于比较两个数大小的函数模版

template <typename T>

int compare(const T &v1, const T &v2)

{

  if( v1 < v2 ) 

    return -1;

  if( v1 > v2 ) 

    return 1;

  return 0 ;

}

 

模版的定义从模版关键字template开始,后跟一个模版参数列表

模版参数列表是一个用逗号分隔的一个或多个模版参数的列表,用<>包围。

模版参数列表类似于函数参数列表,模版参数表示在类或函数定义中用到的类型或值。

 

类模版

代码示例:

template <typename T> class A{

public:

  typedef T value_type;

  //构造函数

  A();

  A(std::initializer_list<t> il);

  void push_back(const T &t)  { data->push_back(t) ;}

  void push_back(T &&t) {   data->push_back( std::move(t) ); }

  void pop_back();

  ......

private:

  std::shared_ptr<std::vector<t>> data;

  ......

}

 

 

当要用A模版定义一个类型时,必须提供元素类型:

 A<int>  x;  //空的A<int>

 A<int>  y  = {0,1,2,3,4};   //含有5个元素的A<int>

 

posted @ 2020-07-18 21:32  Neko_YG  阅读(113)  评论(0编辑  收藏  举报