有没有更简单的方法可以做到这一点?
for_each(v_Numbers.begin(), v_Numbers.end(), bind1st(operator<<, cout));
for如果可能,没有显式循环。
for
编辑:
如果可能std::cin的std::vector话,该如何做呢?(n仅如何读取元素)?
std::cin
std::vector
n
你可以做到这一点使用std::copy到std::ostream_iterator:
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>,因此您将必须用适当的类型替换该部分。
vector<int>
编辑 有关阅读输入的内容:
相反,您可以从一系列复制std::istream_iterator到vector使用std::back_inserter:
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));