Namespaces
Variants

std::ranges::subrange<I,S,K>:: next

From cppreference.net
Ranges library
Range adaptors
constexpr subrange next ( std:: iter_difference_t < I > n = 1 ) const &
requires std:: forward_iterator < I > ;
(1) (C++20 이후)
constexpr subrange next ( std:: iter_difference_t < I > n = 1 ) && ;
(2) (C++20 이후)

subrange 를 반환하며, 이의 begin_ 가 증가된(또는 n 이 음수인 경우 감소된) 상태입니다. 실제 증가(또는 감소) 연산은 advance() 에 의해 수행됩니다.

1) * this 의 복사본을 반환합니다.
다음 코드와 동일함: auto tmp = * this ;
tmp. advance ( n ) ;
return tmp ;
.
2) subrange * this 에서 이동하여 반환합니다.
다음에 해당함: advance ( n ) ;
return std :: move ( * this ) ;
.

목차

매개변수

n - 반복자의 최대 증분 횟수

반환값

위에서 설명한 대로.

참고 사항

이 함수와 advance() 의 차이점은 후자가 제자리에서 증가(또는 감소)를 수행한다는 것입니다.

예제

#include <array>
#include <iterator>
#include <print>
#include <ranges>
int main()
{
    std::array arr{1, 2, 3, 4, 5, 6, 7};
    std::ranges::subrange sub{std::next(arr.begin(), 2), std::prev(arr.end(), 2)};
    std::println("1) sub: {}", sub);
    std::println("2) sub: {}", sub.next());
    std::println("3) sub: {}", sub.next(2));
}

출력:

1) sub: [3, 4, 5]
2) sub: [4, 5]
3) sub: [5]

참고 항목

주어진 거리만큼 반복자를 감소시킨 subrange 복사본을 얻음
(public member function)
주어진 거리만큼 반복자를 전진시킴
(public member function)
(C++11)
반복자를 증가시킴
(function template)
주어진 거리만큼 또는 경계까지 반복자를 증가시킴
(algorithm function object)