【问题标题】:Vector of structs which contains another vector包含另一个向量的结构向量
【发布时间】:2016-03-26 09:09:04
【问题描述】:

我需要动态分配的结构空间,并且这些结构必须包含另一个动态分配的空间。如果我手动分配,那会很费力。

所以我想通过向量来做:

using namespace std;

struct lol{
    int value;
    vector<int> vekt;
};

vector<lol> vektt;

从逻辑上讲,我会像上面的代码那样做,但我不知道如何做我的程序需要的两件事:

1.遍历他们两个得到values

2.push 一些东西到vekt( struct 的向量);

我尝试过这样的推送但不起作用:

vektt[0] . vekt . push_back( 2 );

所以我需要知道如何遍历这两个向量以及如何访问向量vect 的成员和方法。

【问题讨论】:

  • 阅读一些文档和/或使用侧边栏。
  • 真的吗?不要说!也许我不太明白,因此来到这里?

标签: c++ vector struct


【解决方案1】:
// Iterating
for (auto &i: vektt)                 // or const auto &i according to requirements
{
    cout << i.value << ", ";
    for (auto j: i.vekt) cout << j << ' ';
    cout << '\n';
}
// Inserting int to vekt of i-th element of vektt
int a;
vektt[i].vekt.push_back(a);

【讨论】:

  • 使用auto&amp; 而不是auto
  • @M.M 甚至const auto&amp;
  • 当我使用 vektt[0] 时。向量。 push_back(2),它给了我段错误
  • @alik33 您需要确保在vektt[0] 分配了一个项目。
猜你喜欢
  • 1970-01-01
  • 2018-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-07
  • 2018-08-28
相关资源
最近更新 更多