(私はCのバックグラウンドで、C++の新しいSTLとなります)
渡されるベクトルのC++配列を記述していますベクトルの)を関数で処理し、その中で処理されます。 [C中】この場合
私は私のカスタムデータ型へのポインタを渡されていた
そうしようとしているときに、コンパイル時にエラーを与えている私のコード(フードの下の値で呼んでいます。):C++の関数を使用してベクトルの配列を渡して変更する
#include <cstdio>
#include <vector>
using namespace std;
/*
the problem is I can't get the syntax. vector<type> &var is
a reference to a single dimension array of vectors.
*/
void pass_arrayOf_vect(vector<int> &array, int lmt);
int main() {
int lmt = 10;
vector<int> lst[lmt];
pass_arrayOf_vect(lst, lmt);
return 0;
}
/*
and the traditional ambiguity of whether using "." or "->" for
accessing or modifying indexes and their members.
*/
void pass_arrayOf_vect(vector<int> &lst, int lmt) {
for (int i = 0; i < lmt; i++) {
lst[i].push_back(i*i);
}
for (int i = 0; i < lmt; i++) {
printf("array[%d]: ", i);
for (int j = 0; j < lst[i].size(); j++) {
printf("%d ",lst[i][j]);
}
printf("\n");
}
printf("\n");
return;
}
ベクトル配列を使用するには、「ベクトル」を書き込みます。 –
'vector lst [lmt];注意' lmt'はコンパイル時定数ではないので、これは可変長配列と呼ばれています。これらは標準C++の一部ではなく、ほんのわずかのコンパイラでサポートされています。あなたがGCCであなたのプログラムを構築し、Visual Studioを使って誰かにプログラムを提出すれば、人生は面倒です。 –
user4581301
あなたのCからは、C++標準では、ここでのように可変長配列(VLA)がサポートされていないことをすぐに知っているはずです(さらに、拡張でサポートする悪質なコンパイラでさえ、 -POD型の要素ベース)、私はそれらの明確なステアリングから始めたいと思います。第2に、このサイトで報告されたコンパイラのエラーに関する質問がある場合(あなたが言ったように、「コンパイル時にエラーを出す」**常に**あなたの投稿にエラー**を入れてください) – WhozCraig