结构中的引用向量?

时间:2012-12-11 01:12:19

标签: c++ vector struct

我想创建一个包含double和string向量的结构。我试过这个

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;

我收到错误说:

错误:使用未初始化的引用成员构造“list”。

我该如何解决这个问题?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您的代码完美无缺。

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