c++ - 如何使用 for_each 输出到 cout?

标签 c++ algorithm stl cout

有没有更直接的方法来做到这一点?

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/

相关文章:

c++ - 我可以用 Boost interval_map 做到这一点吗?

Python - 一次性ifs

c++ - STL 可迭代容器,如 priority_queue

c++ - 基于 malloc/free 的 STL 分配器

c++ - 在可变上下文中使用抽象类时如何实现抽象方法

c# - BMS通过C/C++/C#读写

c++ - 函数参数究竟何时被破坏?

python - 为什么在python中递归调用同一个函数时要使用return

c++ - 指向成员字段的指针的适配器

C++ 11 智能指针的使用