是否可以使用istream_iterator<customstruct>
通过读取人类的标准输入来插入向量?结构中包含多种数据类型。
这样做是否有意义,或者分别提示每个数据是更好的方法?我只是问这个,因为我被要求这样做,但不要认为这是可行的/实用的。
答案 0 :(得分:2)
如果存在“operator&gt;&gt;”的重载,istream_iterator可以读取任何内容,并且它是可复制和可分配的。
尽管有可能,但我不认为这是一种好的阅读方式,因为用户必须手动输入EOF序列才能使迭代器达到目的。
为避免使用EOF,您可以让用户输入一些记录,但大多数人在输入记录之前不太可能知道记录的数量。
更好的选择可能是逐行读取并使用字符串流来获取数据。通过这种方式,您可以将一些预定义模式(如空行)识别为输入结束,然后再将其作为数据发送到stringstream。