根据输入的动态二维数组我需要从用户获得输入N并生成N * N矩阵。我该如何申报矩阵?一般来说,数组和矩阵的大小应该在声明中固定,对吧?怎么样vector<vector<int>>?我从来没有使用过这个,所以我需要老兵的建议。
3 回答
ABOUTYOU
TA贡献1812条经验 获得超5个赞
Boost在其uBLAS库中实现矩阵(支持数学运算),并提供如下的使用语法。
#include <boost/numeric/ublas/matrix.hpp>int main(int argc, char* argv[]){ unsigned int N = atoi(argv[1]); boost::matrix<int> myMatrix(N, N); for (unsigned i = 0; i < myMatrix.size1 (); ++i) for (unsigned j = 0; j < myMatrix.size2 (); ++j) myMatrix(i, j) = 3 * i + j; return 0;}
忽然笑
TA贡献1806条经验 获得超5个赞
示例代码:
template<class T>class Array2D{public: Array2D(int a, int b) { num1 = (T**)new int [a*sizeof(int*)]; for(int i = 0; i < a; i++) num1[i] = new int [b*sizeof(int)]; for (int i = 0; i < a; i++) { for (int j = 0; j < b; j++) { num1[i][j] = i*j; } } } class Array1D { public: Array1D(int* a):temp(a) {} T& operator[](int a) { return temp[a]; } T* temp; }; T** num1; Array1D operator[] (int a) { return Array1D(num1[a]); }};int _tmain(int argc, _TCHAR* argv[]){ Array2D<int> arr(20, 30); std::cout << arr[2][3]; getchar(); return 0;} enter code here
- 3 回答
- 0 关注
- 526 浏览
添加回答
举报
0/150
提交
取消