目前,我有这个用于从文件中获取数据:
ifstream ifs("input");
istream_iterator<string> begin(ifs),end;
vector<string> students(begin,end);
但是现在文件中的数据有一个模式:
string string int
......
我试过这个
ifstream ifs(input);
istream_iterator<string, string, int> begin(ifs), end;
vector<string, string, int> students(begin, end);
但它不起作用。
甚至可以这样做还是我必须使用标准 for 循环?
创建一个包含两个字符串和一个 int 的结构,以及一个重载的 operator>>
。
struct Thingy
{
std::string a, b;
int c;
};
std::istream& operator>>(std::istream& is, Thingy& t) {
return is >> t.a >> t.b >> t.c;
}
然后,您可以创建这些对象的向量,如下所示:
ifstream ifs("input");
istream_iterator<Thingy> begin(ifs),end;
vector<Thingy> students(begin,end);