Namespaces
Variants

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

From cppreference.net
constexpr reference operator [ ] ( size_type idx ) const ;
(C++20부터)

시퀀스의 idx th 번째 요소에 대한 참조를 반환합니다.

만약 idx < size ( ) false 라면, 동작은 정의되지 않습니다.

(C++26 이전)

만약 idx < size ( ) false 라면:

  • 구현이 hardened 된 경우, contract violation 이 발생합니다. 또한 계약 위반 핸들러가 "observe" 평가 의미론 하에 반환된다면, 동작은 정의되지 않습니다.
  • 구현이 hardened 되지 않은 경우, 동작은 정의되지 않습니다.
(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)