随机整数列表
如果我有一个在一行上用空格分隔的整数列表(例如: 50 34 1 3423 5 345),那么使它们成为单独的整数变量的最佳方法是什么 - 使用 收集整数列表辛
?
If I had a list of integers separated by a space on one line (eg: 50 34 1 3423 5 345) then what would be the best way of making each of them a separate integer variable - collecting the list of integers with cin
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
在sehe 的回答之后,您可以通过以下方式更详细地完成它(咳咳)。
他使用的算法基本上在内部执行此操作。包含此答案主要是为了清楚起见。
实例。
In follow-up to sehe's answer, here's how you'd do it a little more verbosely (ahem).
The algorithms sehe used basically do this internally. This answer is included mostly for clarity.
Live example.
查看
strtok( )
和atoi( )
的手册页Have a look at the man pages for
strtok( )
andatoi( )
完毕。如果您确实需要逐行显式读取:
istream_iterator
将重复将operator>>(int&)
应用于引用的流(直到流)。默认情况下,这将默默地忽略空格,并且如果输入操作失败(例如遇到非整数输入),它将抛出异常。back_inserter 是一个输出迭代器,您可以将其与所有容器类型一起使用(像
vector
)支持.push_back
操作。所以实际上STL算法中写的内容类似于Done. If you really need to explicetely read line-wise:
An
istream_iterator<int>
will repeatedly applyoperator>>(int&)
to the referenced stream (until the end of the stream). By default this will silently ignore whitespace, and it will throw an exception if the input operation failed (e.g. non-integer input is encountered)The back_inserter is an output iterator that you can use with all container types (like
vector
) that support the.push_back
operation. So in fact what is written there in STL algorithmese is similar to