是否可以使用 istream_iterator<customstruct>
通过读取人类的标准输入来插入 vector ?该结构中包含多种数据类型。
这样做是否有意义,或者分别提示每条数据是否是更好的方法?我问这个只是因为有人要求我这样做,但我认为这不可能/不切实际。
最佳答案
如果“operator >>”重载,istream_iterator 可以读取任何内容,并且它是可复制和可赋值的。
虽然这是可能的,但我认为这不是一种好的阅读方式,因为用户必须手动键入 EOF 序列才能使迭代器结束。
要避免使用EOF,可以让用户输入多条记录,但大多数人在输入之前不太可能知道记录数。
更好的选择可能是按行读取并使用字符串流来获取数据。通过这种方式,您可以在将它们作为数据发送到 stringstream 之前将一些预定义的模式(如空行)识别为输入的结尾。
关于c++ - 使用 istream_iterator 从键盘读取结构 vector ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4300514/