Namespaces
Variants

std::span<T,Extent>:: operator[]

From cppreference.net
constexpr reference operator [ ] ( size_type idx ) const ;
(начиная с C++20)

Возвращает ссылку на idx элемент последовательности.

Если idx < size ( ) равно false , поведение не определено.

(до C++26)

Если idx < size ( ) равно false :

  • Если реализация является защищённой , происходит нарушение контракта . Более того, если обработчик нарушения контракта возвращает управление при семантике оценки "observe", поведение не определено.
  • Если реализация не является защищённой, поведение не определено.
(начиная с C++26)

Содержание

Параметры

idx - индекс элемента для доступа

Возвращаемое значение

data ( ) [ idx ]

Исключения

Ничего не выбрасывает.

Пример

#include <cstddef>
#include <iostream>
#include <span>
#include <utility>
void reverse(std::span<int> span)
{
    for (std::size_t i = 0, j = std::size(span); i < j; ++i)
    {
        --j;
        std::swap(span[i], span[j]);
    }
}
void print(const std::span<const int> span)
{
    for (int element : span)
        std::cout << element << ' ';
    std::cout << '\n';
}
int main()
{
    int data[]{1, 2, 3, 4, 5};
    print(data);
    reverse(data);
    print(data);
}

Вывод:

1 2 3 4 5
5 4 3 2 1

Смотрите также

(C++26)
доступ к указанному элементу с проверкой границ
(public member function)
прямой доступ к базовому непрерывному хранилищу
(public member function)
возвращает количество элементов
(public member function)
преобразует span в представление его базовых байтов
(function template)