c++ - 如何初始化 vector 的 vector 结构?

标签 c++ vector structure

所以我有这个结构:

struct lang_accuracy{ 
    std::vector<int> sum;
    vector<string> language;
};

和这个类型结构的 vector

vector<lang_accuracy> s;

...
for (int i = 0;...)
{
  s.push_back(lang_accuracy());
  for (int k = 0;...)
  {  
      s[i].sum.push_back(); // `<- error`
      s[i].sum[k]=`some integer value`;
  }
  s[i].language.push_back(); // `<- error`
  s[i].language[i] = `some string`;
}

因此,由于我的结构中有 2 个 vector ,我必须首先使用 push_back 分配更多内存在 s然后继续元素 i vector s并初始化。 但是sumlanguage也是 vector ,出于某种原因,我无法编译上面的内容,因为我得到了这个:

error C2661: 'std::vector<int,std::allocator<_Ty>>::push_back': no overloaded function takes 0 arguments

我知道在 vector<vector<type>> 的情况下你push_back第一个 vector 中的元素,当它已满时,你 push_back整个 vector 变成另一个。 在这里我不能这样做,因为 sumlang在结构之外不被识别为独立的。

我应该如何填充我的 sum比?

最佳答案

错误很明显。您没有向 push_back 提供任何内容以添加到 vector 中。

例如,要向 sum 添加一些内容,您应该首先指定要添加的内容:

s[i].sum.push_back(42); // add 42 to `sum`

关于c++ - 如何初始化 vector 的 vector 结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50258929/

相关文章:

swift - 在 UITableView 中显示来自结构的数据

C - 结构中的字符串返回整个数组

c++ - 从 CSV C++ 中提取 double 值时出现意外结果

C++纠缠共享指针

c++ - C++ 中数组范围内的有效元素计数

c++ - 如果全局函数使用非局部变量,那么它是闭包是否正确?

c++ - 访问另一个类包含的 std::vector

c++ - 结构初始化 vector

c++ - 标准 vector 大小调整

c++ - 如何在调用 addData(...) 函数时增加结构的大小,以便我可以保存更多数据