【问题标题】:I can't add item to ( std::vector < std::vector <std::string> > ) [duplicate]我无法将项目添加到( std::vector < std::vector <std::string> > )[重复]
【发布时间】:2017-12-07 11:53:14
【问题描述】:

为什么我不能在向量中添加一个项目:

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

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

我做错了什么?

【问题讨论】:

  • 当你创建一个向量时,它是空的。 All 对其进行索引将超出范围。也许你应该get a good beginners book or two
  • 你需要初始化vector的vector里面的所有vector。

标签: c++ linux


【解决方案1】:

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

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

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

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

让事情顺利进行。

【讨论】:

    猜你喜欢
    • 2014-01-11
    • 1970-01-01
    • 1970-01-01
    • 2020-09-07
    • 1970-01-01
    • 1970-01-01
    • 2011-10-26
    • 2017-09-21
    • 1970-01-01
    相关资源
    最近更新 更多