中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

C++中如何自定義矩陣類模板

c++
小樊
93
2024-08-29 22:25:31
欄目: 編程語言

在C++中,你可以通過創建一個類模板來實現自定義矩陣類。以下是一個簡單的示例:

#include<iostream>
#include<vector>

template<typename T>
class Matrix {
public:
    // 構造函數
    Matrix(int rows, int cols) : rows_(rows), cols_(cols) {
        data_.resize(rows);
        for (int i = 0; i< rows; ++i) {
            data_[i].resize(cols);
        }
    }

    // 獲取矩陣的行數
    int rows() const {
        return rows_;
    }

    // 獲取矩陣的列數
    int cols() const {
        return cols_;
    }

    // 獲取矩陣中指定位置的元素
    T& operator()(int row, int col) {
        return data_[row][col];
    }

    // 獲取矩陣中指定位置的元素(常量版本)
    const T& operator()(int row, int col) const {
        return data_[row][col];
    }

private:
    int rows_;
    int cols_;
    std::vector<std::vector<T>> data_;
};

int main() {
    // 創建一個3x3的整數矩陣
    Matrix<int> mat(3, 3);

    // 初始化矩陣
    for (int i = 0; i < mat.rows(); ++i) {
        for (int j = 0; j < mat.cols(); ++j) {
            mat(i, j) = i * j;
        }
    }

    // 輸出矩陣
    for (int i = 0; i < mat.rows(); ++i) {
        for (int j = 0; j < mat.cols(); ++j) {
            std::cout<< mat(i, j) << " ";
        }
        std::cout<< std::endl;
    }

    return 0;
}

這個示例中,我們創建了一個名為Matrix的類模板,它接受一個類型參數T。這個類模板包含一個二維向量data_,用于存儲矩陣的數據。我們還提供了一些成員函數,如rows()cols()operator(),以方便地訪問和操作矩陣的元素。

main()函數中,我們創建了一個3x3的整數矩陣,并使用嵌套循環初始化和輸出它。你可以根據需要修改這個類模板,以添加更多的功能和操作。

0
黄大仙区| 锡林郭勒盟| 胶州市| 台前县| 兴文县| 保靖县| 亳州市| 屏东市| 化州市| 舟山市| 喜德县| 泰和县| 察雅县| 嫩江县| 海南省| 华亭县| 富锦市| 东乡县| 黄陵县| 黄浦区| 衡东县| 托里县| 马山县| 晋州市| 巫山县| 潞城市| 金平| 会宁县| 高安市| 茶陵县| 司法| 济源市| 通城县| 凯里市| 沿河| 蓝田县| 崇州市| 巴林右旗| 崇礼县| 美姑县| 电白县|