首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

C++ 類模板數組操作:Array 模板實現排序、查找、求和,實例化 int/double

     編輯:程式設計綜合問答

模板類設計


template <typename T>
class Array {
    T* data;
    int size;
public:
    Array(int n) : size(n) { data = new T[size]; }
    ~Array() { delete[] data; }
    T& operator[](int i) { return data[i]; }
    int getSize() const { return size; }

    void sort() { std::sort(data, data + size); }
    int find(const T& val) const { // 返回索引或 -1
        for (int i = 0; i < size; ++i)
            if (data[i] == val) return i;
        return -1;
    }
    T sum() const {
        T total = T(); // 值初始化 (0/0.0)
        for (int i = 0; i < size; ++i) total += data[i];
        return total;
    }
};

實例化使用


int main() {
    Array<int> arrInt(5);
    arrInt[0]=3; arrInt[1]=1; arrInt[2]=4; arrInt[3]=2; arrInt[4]=5;
    arrInt.sort(); // 1 2 3 4 5
    cout << "sum: " << arrInt.sum() << endl; // 15
    cout << "find 3: " << arrInt.find(3) << endl; // 2

    Array<double> arrD(3);
    arrD[0]=1.1; arrD[1]=2.2; arrD[2]=3.3;
    cout << "sum double: " << arrD.sum() << endl; // 6.6
    return 0;
}

參考資源

C++ 類模板數組操作完整例題

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved