使用istream_iterator读取键盘结构的向量?

时间:2010-11-29 02:59:14

标签: c++ vector iostream

是否可以使用istream_iterator<customstruct>通过读取人类的标准输入来插入向量?结构中包含多种数据类型。

这样做是否有意义,或者分别提示每个数据是更好的方法?我只是问这个,因为我被要求这样做,但不要认为这是可行的/实用的。

1 个答案:

答案 0 :(得分:2)

如果存在“operator&gt;&gt;”的重载,istream_iterator可以读取任何内容,并且它是可复制和可分配的。

尽管有可能,但我不认为这是一种好的阅读方式,因为用户必须手动输入EOF序列才能使迭代器达到目的。

为避免使用EOF,您可以让用户输入一些记录,但大多数人在输入记录之前不太可能知道记录的数量。

更好的选择可能是逐行读取并使用字符串流来获取数据。通过这种方式,您可以将一些预定义模式(如空行)识别为输入结束,然后再将其作为数据发送到stringstream。