Namespaces
Variants

std::ranges::drop_view<V>:: begin

From cppreference.net
Ranges library
Range adaptors
constexpr auto begin ( )

nécessite ( ! ( /*simple-view*/ < V > &&
ranges:: random_access_range < const V > &&

ranges:: sized_range < const V > ) ) ;
(1) (depuis C++20)
constexpr auto begin ( ) const

nécessite ranges:: random_access_range < const V > &&

ranges:: sized_range < const V > ;
(2) (depuis C++20)

Retourne un itérateur vers le premier élément de la drop_view , c'est-à-dire un itérateur vers le N ème élément de la vue sous-jacente, ou vers la fin de la vue sous-jacente si elle contient moins de N éléments.

Si V n'est pas un random_access_range ou un sized_range , afin de fournir la complexité temporelle amortie constante requise par le concept range , la surcharge (1) met en cache le résultat dans l'objet sous-jacent cache_ pour une utilisation lors des appels ultérieurs.

Table des matières

Valeur de retour

ranges:: next ( ranges:: begin ( base_ ) , count_ , ranges:: end ( base_ ) ) .

Exemple

#include <array>
#include <concepts>
#include <iostream>
#include <iterator>
#include <ranges>
void println(std::ranges::range auto const& range)
{
    for (auto const& elem : range)
        std::cout << elem;
    std::cout << '\n';
}
int main()
{
    std::array hi{'H', 'e', 'l', 'l', 'o', ',', ' ', 'C', '+', '+', '2', '0', '!'};
    println(hi);
    const auto pos = std::distance(hi.begin(), std::ranges::find(hi, 'C'));
    auto cxx = std::ranges::drop_view{hi, pos};
    std::cout << "*drop_view::begin() == '" << *cxx.begin() << "'\n";
//  *cxx.begin() = 'c'; // undefined: 'views' are to be used as observers
    println(cxx);
}

Sortie :

Hello, C++20!
*drop_view::begin() == 'C'
C++20!

Rapports de défauts

Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.

DR Applicable à Comportement publié Comportement corrigé
LWG 3482 C++20 la surcharge const peut être appelée avec des plages non dimensionnées la surcharge const nécessite sized_range

Voir aussi

retourne un itérateur ou un sentinelle vers la fin
(fonction membre publique)
retourne un itérateur vers le début d'une plage
(objet point de personnalisation)
retourne un sentinelle indiquant la fin d'une plage
(objet point de personnalisation)