根據輸入的動態二維數組我需要從用戶獲得輸入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 關注
- 558 瀏覽
添加回答
舉報
0/150
提交
取消
