博客
关于我
C++ 模板初阶(函数模板&类模板),非类型模板参数,零初始化
阅读量:99 次
发布时间:2019-02-25

本文共 2770 字,大约阅读时间需要 9 分钟。

????

1. ??-????

???????????????????????????

void Swap(int &a, int &b) {    int tem = a;    a = b;    b = tem;}void main() {    int a = 1, b = 2;    char c = 'A', d = 'B';    double e = 1.1, f = 2.2;    cout << "???:a=" << a << "  b=" << b << endl;    Swap(a, b);    cout << "???:a=" << a << "  b=" << b << endl;    cout << "???:c=" << c << "  d=" << d << endl;    Swap(c, d);    cout << "???:c=" << c << "  d=" << d << endl;    cout << "???:e=" << e << "  f=" << f << endl;    Swap(e, f);    cout << "???:e=" << e << "  f=" << f << endl;}

??????????????????????????????

  • ????????????????????????????????????????????
  • ?????????????????????????
  • ???????????????????????????????????????????

    C++??????????????????????????????????????????????????????????????????????????????

    2. ????

    2.1 ???????

    ????????????????????????????????????????????????????

    2.2 ???????

    ?????????

    template
    void Swap(Type &a, Type &b) { Type tem = a; a = b; b = tem;}

    2.3 ???????

    ????????????????????????????????????????????????????????????????

    ??????????????????????????????????????????????????????double?????????????????????????Type???double?????????????double?????????????????

    2.4 ????????

    ?????????????????????????????????????????????????

    2.4.1 ?????

    ?????????????????????????????????????????????????????????????????????????????a?Type???int?double???????????????Type??????????????Type???int??double??????

    2.4.2 ?????

    ??????<>?????????????????a,b??????Type??int???

    2.5 ?????????

  • ??????????????????????????????????????????????
  • ????????????????????????????????????????????????????????????????????????????????
  • ?????????????????????????????
  • 3. ???

    3.1 ????????

    ??????????

    template
    class ???? { // ??????};

    ?????

    // ?????template
    class Vector {public: Vector(size_t capacity = 10) : _pData(new T[capacity]) , _size(0) , _capacity(capacity) {} ~Vector(); void PushBack(const T &data); void PopBack(); // ... size_t Size() { return _size; } T &operator[](size_t pos) { assert(pos < _size); return _pData[pos]; }private: T *_pData; size_t _size; size_t _capacity;};template(class t)Vector
    :: ~Vector() { if (_pData) delete[] _pData; _size = _capacity = 0; }

    3.2 ???????

    ?????????????????????????????????<>,???????????<>??????????????????????????????

    4. ???????

    4.1 ????????????

    ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

    4.2 ??????????

    ??????????????????????????????????????????

    template
    T addValue(T const &x) { return x + val;}

    4.3 ??????????

    ?????????????????????????????????????????(class-type)?????????????????????????????????????????

    转载地址:http://bvn.baihongyu.com/

    你可能感兴趣的文章
    poj 2386 Lake Counting(BFS解法)
    查看>>
    poj 2387 最短路模板题
    查看>>
    POJ 2391 多源多汇拆点最大流 +flody+二分答案
    查看>>
    POJ 2403
    查看>>
    poj 2406 还是KMP的简单应用
    查看>>
    POJ 2431 Expedition 优先队列
    查看>>
    Qt笔记——获取位置信息的相关函数
    查看>>
    POJ 2484 A Funny Game(神题!)
    查看>>
    POJ 2486 树形dp
    查看>>
    POJ 2488:A Knight&#39;s Journey
    查看>>
    SpringBoot为什么易学难精?
    查看>>
    poj 2545 Hamming Problem
    查看>>
    poj 2723
    查看>>
    poj 2763 Housewife Wind
    查看>>
    Qt笔记——模型/视图MVD 文件目录浏览器软件
    查看>>
    POJ 2892 Tunnel Warfare(树状数组+二分)
    查看>>
    poj 2965 The Pilots Brothers' refrigerator-1
    查看>>
    poj 3026( Borg Maze BFS + Prim)
    查看>>
    POJ 3041 - 最大二分匹配
    查看>>
    POJ 3041 Asteroids(二分匹配模板题)
    查看>>