2017-12-07 6 views
1

は、なぜ私は、ベクターに項目を追加することはできません。私は(のstd ::ベクトル<はstd ::ベクトル<std::string>>)に項目を追加することはできません

std::vector < std::vector <std::string> > my_list; 
my_list[0][0] = "this is text"; 

std::cout << "text: " << my_list[0][0] << std::endl; 

私が間違って何をしているのですか?

+2

ベクターを作成すると、ベクターは空になります。 ***すべての***索引付けは範囲外です。おそらくあなたは[良い初心者の本や2つを取得する必要があります(http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list)? –

+0

ベクトルのベクトルの内側にあるすべてのベクトルを初期化する必要があります。 – JLev

答えて

0

std::vectorは、一部のコンテナ(std::mapなど)とは異なり、必要に応じて成長しません。

要素をインデックスする前に、std::vectorに適切なサイズがあることを確認する必要があります。あなたは建設にサイズを渡すことでそれを行うことができます。

あなたのケースでは、あなたは物事が軌道に乗るために派手な構文

std::vector < std::vector <std::string> > my_list{{"this is a test"}}; 

を使用することができます。

関連する問題