如何使用 for_each 输出到 cout?

新手上路,请多包涵

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

for_each(v_Numbers.begin(), v_Numbers.end(), bind1st(operator<<, cout));

如果可能,没有明确的 for 循环。

编辑:

如果可能的话,如何使用 std::vector std::cin 执行此操作? (如何阅读 n 仅元素)?

原文由 nakiya 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 322
1 个回答

您可以使用 std::copystd::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 个元素,请查看 此问题

原文由 Björn Pollex 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题