zoukankan      html  css  js  c++  java
  • Nontype parameters for templates

    Besides the template arguments that are preceded by the class or typename keywords , which represent types, templates can also have regular typed parameters, similar to those found in functions. As an example, have a look at this class template that is used to contain sequences of elements

    // sequence template
    #include <iostream>
    using namespace std;
    template <class T, int N>
    class mysequence {
    T memblock [N];
    public:
    void setmember (int x, T value);
    T getmember (int x);
    };
    template <class T, int N>
    void mysequence<T,N>::setmember (int x, T value) {
    memblock[x]=value;
    }
    template <class T, int N>
    T mysequence<T,N>::getmember (int x) {
    return memblock[x];
    }
    int main () {
    mysequence <int,5> myints;
    mysequence <double,5> myfloats;
    myints.setmember (0,100);
    myfloats.setmember (3,3.1416);
    cout << myints.getmember(0) << '\n';
    cout << myfloats.getmember(3) << '\n';
    return 0;
    }
    

    It is also possible to set default values or types for class template parameters. For example, if the previous class template definition had been:

    template <class T=char, int N=10> class mysequence {..};
                

    We could create objects using the default template parameters by declaring:

    mysequence<> myseq;
                

    Which would be equivalent to:

    mysequence<char,10> myseq;
                
     

     
  • 相关阅读:
    HDU 5119 Happy Matt Friends(递推)
    爬虫系列之requests
    基于SVM的python简单实现验证码识别
    python3.6配置libsvm2.2
    KNN——图像分类
    python写web服务器
    牛客练习赛9 珂朵莉的值域连续段
    【转】3次重传的机制
    【转】三个重复的ACK意味着发生拥塞?
    【转】TCP报文格式定义详解
  • 原文地址:https://www.cnblogs.com/cloudseawang/p/826694.html
Copyright © 2011-2022 走看看