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。 |