예를 들어 숫자 1부터 10까지만 인쇄 할 수 있습니까? 당신이 Range-V3 library에 액세스 할 수있는 경우
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, " ");
를 인쇄 당신은 또한 할 수 있습니다
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, " "));
}
출력 :... 오늘, 당신은 전체 코드가 좁혀 수 있습니다 범위-TS 다음 C++ 표준에 포함을위한 파이프 라인에 있는지
가
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
참고. 아마도 C++ 20일까요?
전체 예제 Range-V3을 사용하여 매우 명확한 Live On Coliru
! 덕분에, 이것은 훌륭한 해결책이었습니다. – taeraeyttaejae
왜 사람들이 대답 downvote ... :-) – WhiZTiM
그래, 난 정말 구글이나 stackoverflow 검색 에서이 답변을 찾지 못했 재미있는 이유가 있어야합니다 ... – taeraeyttaejae