91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

C++ matrix如何實現自定義類型

c++
小樊
82
2024-08-02 22:06:16
欄目: 編程語言

要實現C++中的矩陣(matrix)數據結構,可以先定義一個模板類來表示矩陣,然后為該類添加適當的方法和操作符重載來實現矩陣的各種操作。下面是一個簡單的示例代碼,演示了如何實現一個包含自定義類型的矩陣類:

#include <iostream>
#include <vector>

template <typename T>
class Matrix {
private:
    std::vector<std::vector<T>> data;
    int rows, cols;

public:
    Matrix(int rows, int cols) : rows(rows), cols(cols) {
        data.resize(rows, std::vector<T>(cols));
    }

    std::vector<T>& operator[](int i) {
        return data[i];
    }

    friend std::ostream& operator<<(std::ostream& os, const Matrix<T>& m) {
        for (int i = 0; i < m.rows; i++) {
            for (int j = 0; j < m.cols; j++) {
                os << m.data[i][j] << " ";
            }
            os << std::endl;
        }
        return os;
    }
};

// 自定義類型
struct Point {
    int x, y;
    Point(int x, int y) : x(x), y(y) {}
};

int main() {
    Matrix<Point> mat(2, 2);
    mat[0][0] = Point(1, 2);
    mat[0][1] = Point(3, 4);
    mat[1][0] = Point(5, 6);
    mat[1][1] = Point(7, 8);

    std::cout << mat;

    return 0;
}

在上面的示例中,我們定義了一個模板類Matrix,使用std::vector<std::vector>來存儲矩陣的數據。我們還重載了[]操作符和<<操作符,以便使用數組訪問和輸出矩陣數據。最后,我們定義了一個自定義類型Point,并將其用作矩陣元素的類型。

通過這種方式,我們可以實現一個支持自定義類型的矩陣類,并進行相應的操作。您可以根據實際需求對這個示例代碼進行擴展和修改。

0
平潭县| 沙雅县| 泰州市| 乳源| 六盘水市| 遂平县| 德安县| 临夏市| 岑巩县| 隆化县| 恩平市| 保亭| 张家港市| 岐山县| 龙胜| 交口县| 长丰县| 桑植县| 弥渡县| 武强县| 法库县| 鄄城县| 宜春市| 南康市| 穆棱市| 柳河县| 时尚| 绥江县| 蓬安县| 平昌县| 石城县| 巴林左旗| 曲麻莱县| 琼海市| 南涧| 江北区| 涟水县| 澄江县| 桐乡市| 托克逊县| 灯塔市|