有没有更直接的方法来做到这一点?
for_each(v_Numbers.begin(), v_Numbers.end(), bind1st(operator<<, cout));
没有明确的 for
循环,如果可能的话。
编辑:
如何为 std::cin
执行此操作与 std::vector
如果可能的话? (如何阅读 n
元素)?
最佳答案
您可以使用 std::copy
来实现此目的进入 std::ostream_iterator
:
std::vector<int> v_Numbers; // suppose this is the type
// put numbers in
std::copy(v_Numbers.begin(), v_Numbers.end(),
std::ostream_iterator<int>(std::cout));
加个后缀就更好了:
std::copy(v_Numbers.begin(), v_Numbers.end(),
std::ostream_iterator<int>(std::cout, "\n"));
这假设您的容器是 vector<int>
,因此您必须将该部分替换为适当的类型。
编辑关于阅读输入:
相反,您可以从 std::istream_iterator
的范围内复制变成 vector
使用 std::back_inserter
:
std::vector<int> v_Numbers;
std::copy(std::istream_iterator<int>(std::cin), std::istream_iterator<int>(),
std::back_inserter(v_Numbers));
如果您只想读取 n 个元素,请查看 this question .
关于c++ - 如何使用 for_each 输出到 cout?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4153110/