<span>
span
は、オブジェクトの連続したシーケンスに対するビューです。 高速かつ境界セーフなアクセスを提供します。 vector
やarray
とは異なり、要素は "所有" されません。
詳細については、 span
クラス を参照してください。 span
を使用する方法の例を次に示します。
#include <span>
#include <iostream>
void Show(std::span<int> someValues)
{
// show values in reverse
for (auto rIt = someValues.rbegin(); rIt != someValues.rend(); ++rIt)
{
std::cout << *rIt;
}
// show a subspan
for (auto& i : someValues.subspan(1, 2))
{
std::cout << i;
}
}
int main()
{
int numbers[]{ 0,1,2,3,4 };
Show(numbers); // note conversion from array to span
}
要件
ヘッダー: <span>
名前空間: std
コンパイラ オプション: /std:c++20
以降が必要です。
メンバー
クラス
名前 | 説明 |
---|---|
span |
オブジェクトの連続したシーケンスに対するビューを提供します。 |
演算子
名前 | 説明 |
---|---|
operator= |
span の割り当て |
operator[] |
要素アクセス |
関数
名前 | 説明 |
---|---|
as_bytes |
span の基になる読み取り専用バイトを取得します。 |
as_writable_bytes |
span の基になるバイトを取得します。 |
定数
名前 | 説明 |
---|---|
dynamic_extent |
span サイズがコンパイル時ではなくランタイムに決定されることを示します。 span 内の要素の数がコンパイル時に既知の場合は、Extent テンプレート パラメーターとして指定されます。 数値がランタイムまで分からない場合は、代わりに dynamic_extent を指定します。 |