2017-03-24 12 views
0

で初期化したときに、私はコードの下にありますベクトルString型が、整数

vector<string> v6{10}; 
cout << v6.size() << endl; 
for (int i = 0; i < 10; i++){ 
    cout << v6[i] << endl;  
} 

出力は、以下の画像にある: http://i.prntscr.com/5f8e1fecbdd34fbc9c9d18b9e7e7a2a2.png

は、なぜ彼らはV6の大きさのために10を印刷します。私は最初の要素が整数であるベクトル文字列を作成すると思った。そして私がすべての価値を印刷すると、それはスペースのような何かを表示します

+0

- とQUために追加する価値があるかもしれません、あなたは ''行うには、ベクター V6(10)は何を期待しますか?、「スペース」で、あなたは空の文字列を意味していますか? – doctorlove

答えて

5

v6.size()はベクターのサイズです。空文字列10個のベクトルを作成しました。たとえば、v6[0].size()を見ると、ゼロになります。

あなたはおそらくこれを行うためのもの:整数の代わりに文字列リテラルを使用することにより

vector<string> v6{ "10" }; 

を、あなたはどこ「この多くのデフォルト・構築要素のベクトルを作成する」を意味し、ベクトルのコンストラクタのオーバーロードと呼ばれますおそらく「これらの特定の要素を持つベクターを作成する」ことを意味していました。明確にするために

+0

また、私は、ベクトルコンストラクタに関するドキュメントへのリンクを追加します。http://en.cppreference.com/w/cpp/container/vector/vector – Raxvan

+0

あなたが本当にOPがやったんや 'ベクトル V6 {「10」を使用することができます}; '。あなたは、init-listコンストラクタがいくつかのケースでは選択されているので、メンタルオーバーヘッドに値するものではないと主張することもできます。 – chris

+0

@chrisああ、そうです、私はイニシャライザリストの構文を忘れていました。 – cdhowie

関連する問題