我无法将项添加到(std :: vector&lt; std :: vector <std :: string>&gt;)

时间:2017-12-07 11:53:15

标签: c++ linux

为什么我不能向vector添加项目:

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

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

我做错了什么?

1 个答案:

答案 0 :(得分:0)

与某些容器(例如std::map)不同,std::vector不会按需增长。

因此,在索引元素之前,您需要确保std::vector具有适当的大小。你可以通过在构造上传递一个尺寸来做到这一点。

在您的情况下,您可以使用华丽的语法

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

让事情顺利进行。