Oracle® Solaris Studio 12.4:C++ 用户指南

退出打印视图

更新时间: 2014 年 12 月
 
 

6.4 模板编写

可以嵌套使用模板。这种方式尤其适用于在通用数据结构上定义通用函数,与在标准 C++ 库中相同。例如,模板排序函数可以通过一个模板数组类进行声明:

template <class Elem> void sort(Array<Elem>);

并定义为:

template <class Elem> void sort(Array<Elem> store)
    {int num_elems = store.GetSize();
      for (int i = 0; i < num_elems-1; i++)
          for (int j = i+1; j < num_elems; j++)
              if (store[j-1] > store[j])
                  {Elem temp = store[j];
                    store[j] = store[j-1];
                    store[j-1] = temp;}}

上述示例定义了针对预先声明的 Array 类模板对象的排序函数。下一个示例说明了排序函数的实际用法。

Array<int> int_array(100);   // construct an array of ints
sort(int_array);             // sort it