<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= |
范围赋值 |
operator[] |
元素访问 |
函数
名称 | 描述 |
---|---|
as_bytes |
获取范围的基础只读字节。 |
as_writable_bytes |
获取范围的基础字节。 |
常量
名称 | 描述 |
---|---|
dynamic_extent |
指示范围大小在运行时确定,而不是在编译时。 如果范围中的元素数在编译时已知,则将其指定为 Extent 模板参数。 如果元素数在运行时之前未知,则改为指定 dynamic_extent 。 |