如何使用for_each输出到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>(cout));
如果添加一些后缀,那就更好了:
std::copy(v_Numbers.begin(), v_Numbers.end(),
std::ostream_iterator<int>(cout, "\n"));
这假设您的容器是vector<int>
,因此您将必须用适当的类型替换该部分。
编辑 有关阅读输入的内容:
相反,您可以从一系列复制std::istream_iterator
到vector
使用std::back_inserter
:
std::vector<int> v_Numbers;
std::copy(std::istream_iterator<int>(cin), std::istream_iterator<int>(),
std::back_inserter(v_Numbers));