2016-09-24 12 views
-4

私は形で、ベクターの配列を使用していますC++コードを書いています:いくつかのコンパイラでは++コード(ベクトル実装)

vector<int> s1[k]; 

を、私はエラーを取得しますが、いくつかのコンパイラではないのです私はエラーが発生しています:

Compile time error (error: ISO C++ forbids variable-size array 's1' compilation terminated due to -Wfatal-errors.)

なぜ異なるコンパイラで動作しているのか、この問題を解決するにはどうすればよいですか?

+0

一部のコンパイラでは、標準以外の可変長配列を使用できます。なぜ、Cスタイルのベクトル配列が必要なのですか? – user463035818

+0

VLAはC++標準ではサポートされていません。 –

答えて

1

kはおそらく一定ではありません。 C++ではCのような可変長配列は許されません。

ダイナミックアレイであると想定される場合は、代わりに std::vector<std::vector<int>> s1(k)を使用してください。

+0

@pharaskその後、定数ではありません:P – xinaiz

+0

@pharaskどこでも宣言された 'const int k 'は表示されません。また、ユーザーに入力を求めることは決して*一定ではありません。 – ray

+0

@pharaskあなたの声明について二度目に考えてみてください。ユーザーが入力するとkはどのように一定になりますか? –

関連する問題