私は、arrayTest [r] [c]のように、ユーザーが関数に入力した寸法の2D行列を渡そうとしています。私は私の研究を行ったし、動作する答えを見つけることができません。私は窓にコードブロックを使用しています。2次元配列を関数に送る方法は?
マイコード:コールprintMatrixに該当する機能:
#include <iostream>
using namespace std;
int r, c;
template <size_t r, size_t c>
void printMatrix(double (&matrix)[r][c])
{
for(int i=0;i<r;i++)
{
for(int j=0;j<c;j++)
{
cout<<matrix[i][j]<<" ";
}
cout<<endl;
}
}
int main()
{
r = 1;
c = 1;
double matrix[r][c] = { { } };
printMatrix(matrix);
return 0;
}
は、私は現在、エラーを取得します。
'std :: vector>'は生の配列ではありません。 –
user0042
'std :: array'はCスタイルの配列(動的なサイズ変更が必要な場合は' std :: vector')よりはるかに優れたオプションです。 –
std :: vectorを使い、オフセットを手で計算する方がよいでしょう。さもなければ、不揃いな配列を得ることができますし、オーバーヘッドも大きくなります。 –