#pragma once #include "stdafx.h" //用vector实现矩阵, vector传参必须用模板泛型 template <typename Object> class Matrix { private: //2维的矩阵,2维的vector数组,vector就是一种动态数组 vector<vector<Object>> array; public: //constructor(), 填充数组(行数) Matrix(int rows, int cols) :array(rows) { for (int i = 0; i < rows; i++) //resize(),改变当前使用数据的大小,如果它比当前使用的大,者填充默认值 array[i].resize(cols); } //重载操作符[],实现索引器,常量引用传值 const vector<Object>& operator[](int row)const { return array[row]; } //重载操作符[],实现索引器,变量引用传值 vector<Object> & operator[](int row) { return array[row]; } //Length() int numrows() const { //array.Length() return array.size(); } //numcols() int numcols() const { //numrows() is true; return numrows() ? array[0].size() : 0; } //deconstructor() virtual ~Matrix() {} //copy() void copy(const Matrix<int>& from, Matrix<int>& to) { for (int i = 0; i < to.numrows; i++) { to[i] = from[i]; } } };