# operator+(std::counted_iterator)

From cppreference.com
< cpp‎ | iterator‎ | counted iterator

friend constexpr counted_iterator operator+( std::iter_difference_t <I> n, const counted_iterator& x ) requires std::random_access_iterator <I>; |  | (since C++20)

Returns an iterator adaptor which is advanced by n. The behavior is undefined if n is greater than the length recorded within x (i.e. if x + n result in undefined behavior).

This function is not visible to ordinary unqualified or qualified lookup, and can only be found by argument-dependent lookup when std::counted_iterator<I> is an associated class of the arguments.

### Parameters

n | - | the number of positions to increment the iterator
x | - | the iterator adaptor to increment

### Return value

An iterator adaptor equal to x + n.

### Example

Run this code

    #include <iostream>
    #include <iterator>
    #include <list>
    #include <vector>

    int main()
    {
        std::vector v{0, 1, 2, 3, 4, 5};
        std::counted_iterator<std::vector<int>::iterator> p{v.begin() + 1, 4};
        std::cout << "*p:" << *p << ", count:" << p.count() << '\n';
        std::counted_iterator<std::vector<int>::iterator> q{2 + p};
        std::cout << "*q:" << *q << ", count:" << q.count() << '\n';

        std::list l{6, 7, 8, 9};
        std::counted_iterator<std::list<int>::iterator> r{l.begin(), 3};
        std::cout << "*r:" << *r << ", count:" << r.count() << '\n';
    //  auto s{2 + r}; // error: the underlying iterator does
                       // not model std::random_access_iterator
    }

Output:

    *p:1, count:4
    *q:3, count:2
    *r:6, count:3

### See also

operator++operator++(int)operator+=operator+operator--operator--(int)operator-=operator- (C++20) | advances or decrements the iterator (public member function)
operator- (C++20) | computes the distance between two iterator adaptors (function template)
operator-(std::default_sentinel_t) (C++20) | computes the signed distance to the end (function template)

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/iterator/counted_iterator/operator%2B&oldid=159841"