根据输入的动态二维数组

根据输入的动态二维数组

我需要从用户获得输入N并生成N * N矩阵。我该如何申报矩阵?一般来说,数组和矩阵的大小应该在声明中固定,对吧?怎么样vector<vector<int>>?我从来没有使用过这个,所以我需要老兵的建议。



米琪卡哇伊
浏览 527回答 3
3回答

ABOUTYOU

Boost在其uBLAS库中实现矩阵(支持数学运算),并提供如下的使用语法。#include&nbsp;<boost/numeric/ublas/matrix.hpp>int&nbsp;main(int&nbsp;argc,&nbsp;char*&nbsp;argv[]){ &nbsp;&nbsp;&nbsp;&nbsp;unsigned&nbsp;int&nbsp;N&nbsp;=&nbsp;atoi(argv[1]); &nbsp;&nbsp;&nbsp;&nbsp;boost::matrix<int>&nbsp;myMatrix(N,&nbsp;N); &nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(unsigned&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;<&nbsp;myMatrix.size1&nbsp;();&nbsp;++i) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(unsigned&nbsp;j&nbsp;=&nbsp;0;&nbsp;j&nbsp;<&nbsp;myMatrix.size2&nbsp;();&nbsp;++j) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myMatrix(i,&nbsp;j)&nbsp;=&nbsp;3&nbsp;*&nbsp;i&nbsp;+&nbsp;j; &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;}

忽然笑

示例代码:template<class&nbsp;T>class&nbsp;Array2D{public: &nbsp;&nbsp;&nbsp;&nbsp;Array2D(int&nbsp;a,&nbsp;int&nbsp;b)&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;num1&nbsp;=&nbsp;(T**)new&nbsp;int&nbsp;[a*sizeof(int*)]; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;<&nbsp;a;&nbsp;i++) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;num1[i]&nbsp;=&nbsp;new&nbsp;int&nbsp;[b*sizeof(int)]; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(int&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;<&nbsp;a;&nbsp;i++)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(int&nbsp;j&nbsp;=&nbsp;0;&nbsp;j&nbsp;<&nbsp;b;&nbsp;j++)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;num1[i][j]&nbsp;=&nbsp;i*j; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;class&nbsp;Array1D &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;public: &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Array1D(int*&nbsp;a):temp(a)&nbsp;{} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T&&nbsp;operator[](int&nbsp;a) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;temp[a]; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T*&nbsp;temp; &nbsp;&nbsp;&nbsp;&nbsp;}; &nbsp;&nbsp;&nbsp;&nbsp;T**&nbsp;num1; &nbsp;&nbsp;&nbsp;&nbsp;Array1D&nbsp;operator[]&nbsp;(int&nbsp;a) &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;Array1D(num1[a]); &nbsp;&nbsp;&nbsp;&nbsp;}};int&nbsp;_tmain(int&nbsp;argc,&nbsp;_TCHAR*&nbsp;argv[]){ &nbsp;&nbsp;&nbsp;&nbsp;Array2D<int>&nbsp;arr(20,&nbsp;30); &nbsp;&nbsp;&nbsp;&nbsp;std::cout&nbsp;<<&nbsp;arr[2][3]; &nbsp;&nbsp;&nbsp;&nbsp;getchar(); &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;} &nbsp;&nbsp;&nbsp;&nbsp;enter&nbsp;code&nbsp;here
打开App,查看更多内容
随时随地看视频慕课网APP