我想创建一个包含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”。
我该如何解决这个问题?
感谢您的帮助!
答案 0 :(得分:0)
您的代码完美无缺。
第一次阅读有一点问题:如果在价格值之后输入文件中有换行符,则该换行符将保持未读。在这种情况下,对getline
的第一次调用将读取一个空字符串,这意味着items
数组中的第一个名称将为空。