std::span<T,Extent>:: subspan
|
template
<
std::
size_t
Offset,
std::
size_t
Count
=
std::
dynamic_extent
>
|
(1) | (desde C++20) |
|
constexpr
std::
span
<
element_type,
std::
dynamic_extent
>
subspan
(
size_type offset,
|
(2) | (desde C++20) |
Obtiene una subvista sobre algunos elementos consecutivos de este span, los elementos a incluir se determinan mediante un recuento de elementos y un desplazamiento.
- Si Count es std:: dynamic_extent , la subvista contiene todos los elementos a partir del Offset ésimo .
- De lo contrario, la subvista contiene Count elementos a partir del Offset ésimo .
? Count
: ( Extent ! = std:: dynamic_extent
? Extent - Offset
: std:: dynamic_extent ) .
|
Si Offset <= size ( ) && ( Count == std:: dynamic_extent || Count <= size ( ) - Offset ) es false , el comportamiento es indefinido. |
(hasta C++26) |
|
Si Offset <= size ( ) && ( Count == std:: dynamic_extent || Count <= size ( ) - Offset ) es false :
|
(desde C++26) |
- Si count es std:: dynamic_extent , la subvista contiene todos los elementos comenzando desde el offset º .
- De lo contrario, la subvista contiene count elementos comenzando desde el offset º .
|
Si offset <= size ( ) && ( count == std:: dynamic_extent || count <= size ( ) - offset ) es false , el comportamiento es indefinido. |
(hasta C++26) |
|
Si offset <= size ( ) && ( count == std:: dynamic_extent || count <= size ( ) - offset ) es false :
|
(desde C++26) |
Valor de retorno
( data ( ) + Offset, Count ! = std:: dynamic_extent ? Count : size ( ) - Offset ) )
( datos ( ) + desplazamiento, recuento ! = std:: dynamic_extent ? recuento : tamaño ( ) - desplazamiento ) )
Ejemplo
#include <algorithm> #include <cstdio> #include <numeric> #include <ranges> #include <span> void display(std::span<const char> abc) { const auto columns{20U}; const auto rows{abc.size() - columns + 1}; for (auto offset{0U}; offset < rows; ++offset) { std::ranges::for_each(abc.subspan(offset, columns), std::putchar); std::puts(""); } } int main() { char abc[26]; std::ranges::iota(abc, 'A'); display(abc); }
Salida:
ABCDEFGHIJKLMNOPQRST BCDEFGHIJKLMNOPQRSTU CDEFGHIJKLMNOPQRSTUV DEFGHIJKLMNOPQRSTUVW EFGHIJKLMNOPQRSTUVWX FGHIJKLMNOPQRSTUVWXY GHIJKLMNOPQRSTUVWXYZ
Véase también
obtiene un subspan que consiste en los primeros
N
elementos de la secuencia
(función miembro pública) |
|
obtiene un subspan que consiste en los últimos
N
elementos de la secuencia
(función miembro pública) |