ranges_stride_view

ranges_stride_view (보폭 뷰)

std::ranges::stride_view은 기본 뷰에서 N개마다 하나씩 요소를 선택하는 뷰예요. C++23부터 사용할 수 있어요.

출처: cppreference

본문

<ranges> 헤더에 정의되어 있고, 시그니처는 다음과 같아요.

template< ranges::input_range V >
    requires ranges::view<V>
class stride_view
    : public ranges::view_interface<stride_view<V>>

(1) (since C++23)

namespace views {
    inline constexpr /* unspecified */ stride = /* unspecified */;
}

(2) (since C++23)

호출 시그니처:

template< ranges::viewable_range R >
    requires /* see below */
constexpr ranges::view auto stride( R&& r, ranges::range_difference_t<R> n );
    1. 기본 뷰 V에서 첫 요소부터 N개마다 하나씩 요소를 선택하는 뷰.
    1. stride 뷰를 생성하는 뷰 팩토리 객체.

멤버 함수 (Member functions)

  • (constructor) — stride 뷰 생성
  • begin / end — 보폭을 건너뛰는 반복자/센티널 반환
  • size — ceil(size/N) 반환 (sized일 때)

예제 (Example)

이 코드를 실행해 봐요.

#include <ranges>
#include <vector>
#include <iostream>

int main()
{
    std::vector<int> v{1, 2, 3, 4, 5, 6};
    for (int x : v | std::views::stride(2))
        std::cout << x << ' '; // 1 3 5
}

더 알아보기 (Learn more)

cppreference