结构中的按引用向量

vector by reference in a struct?

本文关键字:引用 向量 结构      更新时间:2023-10-16

我想创建一个包含双精度和字符串向量的结构。我试过这个

int main ()
{   
  struct List
  {
      double price;
      vector<string> items;
  };
  List list;
  ifstream infile ("Aap.txt");
  double p;
  infile>>p;
  list.price=p;
  cout<<list.price<<endl;
  int i=0;
  string name;
  getline(infile,name);
  while(infile)
  {
      list.items.push_back(name);
      cout<<list.items[i]<<endl;
      i++;
      getline(infile,name);
  }
  infile.close();
  if (!infile)
  {
      cout<<"File closed."<<endl;
  }
return 0;

这不是填充我的向量,因为它不是通过我想的结构中的引用?

但是当我将结构中的向量定义为:

vector<string>& items;

我收到一个错误,说:

错误:具有未初始化引用成员的结构"列表"。

我该如何解决这个问题?

谢谢你的帮助!

你的代码工作得很好。

第一次读取有一个小问题:如果输入文件中的价格值之后有一个换行符,则该换行符将保持未读状态。在这种情况下,对 getline 的第一次调用将读取一个空字符串,这意味着 items 数组中的名字将最终为空。