Espacios de nombres
Variantes
Acciones

std::span<T,Extent>::last

De cppreference.com
< cpp‎ | container‎ | span
Revisión a fecha de 13:48 20 nov 2021; Ljestrada (Discusión | contribuciones)

(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)
 
 
 
 
template< std::size_t Count >
constexpr std::span<element_type, Count> last() const;
constexpr std::span<element_type, std::dynamic_extent> last( size_type Count ) const;

Obtiene un lapso que es una vista sobre los últimos Count elementos de este lapso. El programa está mal formado si Count > Extent. El comportamiento no está definido si Count > size().

[editar] Valor de retorno

Un lapso r que es una vista sobre los últimos Count elementos de *this, tal que r.data() == this->data() + (this->size() - Count) && r.size() == Count.

[editar] Ejemplo

#include <iostream>
#include <span>
#include <string_view>
 
auto imprimir = [](std::string_view const titulo, auto const& contenedor) {
    std::cout << titulo << "[" << std::size(contenedor) << "]{ ";
    for (auto const& elem : contenedor)
        std::cout << elem << ", ";
    std::cout << "};\n";
};
 
void run(std::span<const int> lapso)
{
    imprimir("lapso: ", lapso);
 
    std::span<const int, 3> ultimo = lapso.last<3>();
    imprimir("lapso.last<3>(): ", ultimo);
 
    std::span<const int, std::dynamic_extent> ultimo_dinamico = lapso.last(2);
    imprimir("lapso.last(2):   ", ultimo_dinamico);
}
 
int main()
{
    int a[8]{ 1, 2, 3, 4, 5, 6, 7, 8, };
    imprimir("int  a", a);
    run(a);
}

Salida:

int  a[8]{ 1, 2, 3, 4, 5, 6, 7, 8, };
lapso: [8]{ 1, 2, 3, 4, 5, 6, 7, 8, };
lapso.last<3>(): [3]{ 6, 7, 8, };
lapso.last(2):   [2]{ 7, 8, };

[editar] Véase también

Obtiene un sublapso que consiste en los primeros N elementos de la secuencia.
(función miembro pública) [editar]
Obtiene un sublapso.
(función miembro pública) [editar]