# std::counted_iterator<I>::operator[]

< cpp‎ | iterator‎ | counted iterator

constexpr decltype(auto) operator[]( std::iter_difference_t<I> n ) const requires std::random_access_iterator<I>; |  | (C++20 起)

访问位于给定位置的元素。若 `n` 不小于记录的到末尾的距离则行为未定义。

### 参数

n | - | 相对当前位置的位移

### 返回值

this->base()[n] 。

### 示例

    #include <iostream>
    #include <iterator>
    #include <array>
    #include <list>

    int main()
    {
        std::array array{'A', 'B', 'C', 'D', 'E'};

        std::counted_iterator it{ array.begin() + 1, /*count:*/ 3 };

        for (int i{}; i != it.count(); ++i)
            std::cout << it[i] << ' ';
        std::cout << '\n';

        for (int i{}; i != it.count(); ++i)
            it[i] += ('E' - 'A');

        for (int i{}; i != it.count(); ++i)
            std::cout << it[i] << ' ';
        std::cout << '\n';

        std::list list {'X', 'Y', 'Z', 'W'};
        std::counted_iterator it2{ list.begin(), 3 };
    //  char x = it2[0]; // 错误：不满足要求 `random_access_iterator`
        std::cout << *it2 << '\n'; // OK
    }

输出：

    B C D
    F G H
    X

### 参阅

operator*operator-> (C++20) | 访问被指向的元素 (公开成员函数)