阅读量:0
要实现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
通过这种方式,我们可以实现一个支持自定义类型的矩阵类,并进行相应的操作。您可以根据实际需求对这个示例代码进行扩展和修改。