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 的始于偏移 Offset 的 Count 个元素上的视图。若 Count 为 std::dynamic_extent ,则子段中的元素数为 size() - offset (即它结束于 *this 的结尾)。

è‹¥

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

则 (1) 为谬构。

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

  • Offset 大于 size() ï¼›
  • Count 非 std::dynamic_extent 且 Count 大于 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 。若 Count 为 std::dynamic_extent ,则 r.size() == this->size() - Offset ;否则 r.size() == Count 。

参阅

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