一尘不染

如何使用for_each输出到cout?

algorithm

有没有更简单的方法可以做到这一点?

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

for如果可能,没有显式循环。

编辑:

如果可能std::cinstd::vector话,该如何做呢?(n仅如何读取元素)?


阅读 295

收藏
2020-07-28

共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>(cout));

如果添加一些后缀,那就更好了:

std::copy(v_Numbers.begin(), v_Numbers.end(),
          std::ostream_iterator<int>(cout, "\n"));

这假设您的容器是vector<int>,因此您将必须用适当的类型替换该部分。

编辑 有关阅读输入的内容:

相反,您可以从一系列复制std::istream_iteratorvector使用std::back_inserter

std::vector<int> v_Numbers;
std::copy(std::istream_iterator<int>(cin), std::istream_iterator<int>(),
          std::back_inserter(v_Numbers));
2020-07-28