C++ 参考手册

位置:首页 > C++ 参考手册 >容器库 >std::span > std::span<T,Extent>::subspan

template< std::size_t Offset,

          std::size_t Count = std::dynamic_extent >

constexpr std::span<element_type, E /* see below */> subspan() const;
(1)
constexpr std::span<element_type, std::dynamic_extent>

    subspan( std::size_t Offset,

             std::size_t Count = std::dynamic_extent ) const;
(2)

获得 span ,它是此 span 的始于偏移 OffsetCount 个元素上的视图。若 Countstd::dynamic_extent ,则子段中的元素数为 size() - offset (即它结束于 *this 的结尾)。

  • Offset 大于 Extent ,或
  • Count 不是 std::dynamic_extentCount 大于 Extent - Offset

(1) 为谬构。

OffsetCount 在范围外则行为未定义。若出现以下条件则这会发生:

  • Offset 大于 size()
  • Countstd::dynamic_extentCount 大于 size() - Offset

按下列方式确定 (1) 所返回的 span 的长度模板实参 E

  • Count 不是 std::dynamic_extent 则为 Count
  • 否则,若 Extent 不是 std::dynamic_extent ,则为 Extent - Offset
  • 否则为 std::dynamic_extent

返回值

请求的子段 r ,满足 r.data() == this->data() + Offset 。若 Countstd::dynamic_extent ,则 r.size() == this->size() - Offset ;否则 r.size() == Count

参阅

获得由序列首 N 个元素组成的子段
(公开成员函数)
获得由序列末 N 个元素组成的子段
(公开成员函数)