有效地将文件中的模式存储在向量中

Storing pattern in file in a vector effectively

本文关键字:存储 向量 模式 文件 有效地      更新时间:2023-10-16

目前,我有这个用于从文件中获取数据:

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);