【发布时间】:2010-11-29 02:59:13
【问题描述】:
是否可以使用istream_iterator<customstruct> 通过从人类的标准输入中读取来插入向量?该结构中包含多种数据类型。
这样做是否有意义,或者单独提示每条数据是否是更好的方法?我问这个只是因为我被要求这样做,但不认为这是可能的/不实际的。
【问题讨论】:
是否可以使用istream_iterator<customstruct> 通过从人类的标准输入中读取来插入向量?该结构中包含多种数据类型。
这样做是否有意义,或者单独提示每条数据是否是更好的方法?我问这个只是因为我被要求这样做,但不认为这是可能的/不实际的。
【问题讨论】:
如果“operator >>”重载,istream_iterator 可以读取任何内容,并且它是可复制和可分配的。
虽然有可能,但我认为这不是一种好的阅读方式,因为用户必须手动键入 EOF 序列才能使迭代器结束。
为了避免使用EOF,你可以让用户输入多条记录,但是大多数人在输入之前不太可能知道记录的数量。
更好的选择可能是逐行读取并使用字符串流来获取数据。通过这种方式,您可以将一些预定义的模式(如空行)识别为输入的结尾,然后再将它们作为数据发送到 stringstream。
【讨论】: