[英]how to print range of integer values from a vector
如果我创建一个向量:
vector<int> numbers;
并推送一些值:
for (int i=1; i<=39; ++i) numbers.push_back(i);
例如,我怎样才能打印出数字1到10?
此后,打印15-30,所以numbers.begin()
可能不适用于那里。
例如,我怎样才能打印出数字1到10?
std::copy(numbers.begin(), numbers.begin() + 10, std::ostream_iterator(std::cout, " ");
之后,打印15-30
std::copy(numbers.begin() + 15, numbers.begin() + 30, std::ostream_iterator(std::cout, " ");
如果您可以访问Range-V3库 ...您还可以:
for(auto x : numbers | ranges::view::slice(0, 10))
std::cout << x << " ";
...今天,您可以将整个代码缩小到:
#include <iostream>
#include <range/v3/all.hpp>
int main () {
std::vector<int> numbers = ranges::view::closed_iota(1, 40);
ranges::copy(numbers | ranges::view::slice(0, 10), ranges::ostream_iterator<int>(std::cout, " "));
std::endl(std::cout);
ranges::copy(numbers | ranges::view::slice(15, 30), ranges::ostream_iterator<int>(std::cout, " "));
}
输出:
1 2 3 4 5 6 7 8 9 10
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
请注意, Ranges-TS正在管道中,以包含在下一个C ++标准中。 也许是C ++ 20?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.