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)
境界チェック付きで指定された要素にアクセス
(公開メンバ関数)
基盤となる連続ストレージへの直接アクセス
(公開メンバ関数)
要素数を返す
(公開メンバ関数)
span をその基盤となるバイトのビューに変換
(関数テンプレート)