0

この方法でクラスのベクトルを初期化する必要があります

vector<string> test("hello","world");

しかし、私がそれを行うと、コンパイラはそれを関数として認識し、エラーのようなエラーを出します: 文字列定数の前に識別子が必要です.

こうすると

vector<string> test = ("hello","world") 

それは大丈夫です..方法でそれを行う方法はありますvector<string> test("xx")か?

4

1 に答える 1

5

std :: vectorには、そのように初期化できるようなコンストラクターはありません。そして、2番目の例は、最終的にベクトルになる"world"もの(,演算子が行うこと)に評価されます。

宣言時にベクトルを初期化する場合は、初期化子リストを使用します。

vector<string> test = {"hello", "world"};

これを機能させるには、ソースコードをC++-11モードでビルドしてください。C ++ -11互換のコンパイラがない場合は、後でベクトルに値を追加する必要があります。

vector<string> test;
test.push_back("hello");
test.push_back("world");
于 2012-11-30T18:07:41.273 に答える