导航菜单
首页 >  span函数考研  > span 类(C++ 标准库)

span 类(C++ 标准库)

span 类(C++ 标准库)项目10/19/2023

提供连续对象序列的轻量级视图。 span 提供了一种安全的方法来对在内存中背靠背排列的对象进行迭代和索引。 例如存储在内置数组中的对象 std::array 或 std::vector。

如果你通常使用指针和索引访问一系列背靠背对象,则 span 是一种更安全、轻量级的替代方案。

要设置 span 的大小,可以在编译时通过将大小指定为模板参数,也可以在运行时指定 dynamic_extent。

语法templateclass span;模板参数

Tspan 中元素的类型。

Extentspan 中的元素数量(如果在编译时指定)。 如果元素的数量将在运行时指定,则为 std::dynamic_extent。

推导指南

成员类型定义描述const_pointer指向 const 元素的指针的类型。const_referenceconst 元素的引用的类型。difference_type两个元素间的带符号距离的类型。element_typespan 元素的类型。iteratorspan 的迭代器类型。pointer指向元素的指针的类型。reference元素的引用的类型。reverse_iteratorspan 的反向迭代器类型。size_typespan 中两个元素之间的无符号距离结果的类型。value_type元素的类型,没有 const 或 volatile 限定。构造函数描述span构造 span。迭代器支持描述begin获取指向 span 中第一个元素的迭代器。end获取指向 span 末尾的迭代器。rbegin获取指向 span 的最后一个元素的反向迭代器;即 span 反向后的开始。rend获取指向 span 前面的反向迭代器;即 span 反向后的结尾。访问元素描述back获取 span 中的最后一个元素。data获取 span 中第一个元素的地址。front获取 span 中的第一个元素。operator[]访问指定位置处的元素。观察程序描述empty测试 span 是否为空。size获取 span 中的元素数。size_bytes获取 span 的大小(以字节为单位)。子视图描述first从 span 的前面获取一个子跨度。last从 span 的后面获取一个子跨度。subspan从 span 中的任意位置获取一个子跨度。运算符描述span::operator=替换 span。span::operator[]获取指定位置的元素。备注

所有 span 成员函数都具有恒定的时间复杂度。

与 array 或 vector不同,span 不能“拥有”其内部的元素。 span 不会为其中的项目释放任何存储空间,因为它不拥有这些对象的存储空间。

要求

标头: (自C++20以来)

命名空间:std

编译器选项:/std:c++20或更高版本是必需的。

span::back

获取 span 中的最后一个元素。

constexpr reference back() const noexcept;返回值

对 span 中最后一个元素的引用。

示例#include #include using namespace std;int main(){int a[] = { 0,1,2 };span mySpan(a);cout

相关推荐: