std::span<T,Extent>::subspan
De cppreference.com
<tbody>
</tbody>
template< std::size_t Offset, std::size_t Count = std::dynamic_extent > constexpr std::span<element_type, E /* véase más abajo */> subspan() const; |
(1) | |
constexpr std::span<element_type, std::dynamic_extent> subspan( size_type Offset, size_type Count = std::dynamic_extent ) const; |
(2) | |
Obtiene un lapso que es una vista sobre los Count elementos de este lapso iniciando en el desplazamiento Offset. Si Count es std::dynamic_extent, el número de elementos del sublapso es size() - offset (es decir, termina al final de *this.).
(1) está mal formado si
Offsetes mayor queExtent, oCountno esstd::dynamic_extentyCountes mayor queExtent - Offset.
El comportamiento no está definido si ya sea Offset o Count está fuera de rango. Esto sucede si
Offsetes mayor quesize(), oCountno esstd::dynamic_extentyCountes mayor quesize() - Offset.
El alcance E del lapso devuelto por (1) se determina de la manera siguiente:
- Si
Countno esstd::dynamic_extent,Count; - De lo contrario, si
Extentno esstd::dynamic_extent,Extent - Offset; - De lo contrario,
std::dynamic_extent.
Valor de retorno
El sublapso solicitado r, tal que r.data() == this->data() + Offset. Si Count es std::dynamic_extent, r.size() == this->size() - Offset; de lo contrario r.size() == Count.
Ejemplo
Ejecuta este código
#include <algorithm>
#include <cstdio>
#include <numeric>
#include <ranges>
#include <span>
void mostrar(std::span<const char> abc)
{
const auto columnas{ 20U };
const auto filas{ abc.size() - columnas + 1 };
for (auto offset{ 0U }; offset < filas; ++offset) {
std::ranges::for_each(
abc.subspan(offset, columnas),
std::putchar
);
std::putchar('\n');
}
}
int main()
{
char abc[26];
std::iota(std::begin(abc), std::end(abc), 'A');
mostrar(abc);
}
Salida:
ABCDEFGHIJKLMNOPQRST
BCDEFGHIJKLMNOPQRSTU
CDEFGHIJKLMNOPQRSTUV
DEFGHIJKLMNOPQRSTUVW
EFGHIJKLMNOPQRSTUVWX
FGHIJKLMNOPQRSTUVWXY
GHIJKLMNOPQRSTUVWXYZ
Véase también
| Obtiene un sublapso que consiste en los primeros N elementos de la secuencia. (función miembro pública) | |
| Obtiene un sublapso que consiste en los últimos N elementos de la secuencia. (función miembro pública) |