Partager via


ref_view classe (bibliothèque standard C++)

Vue qui référence les éléments appartenant à une autre plage.

Syntaxe

template<std::ranges::range R>
    requires std::is_object_v<R>
class ref_view : public ranges::view_interface<ref_view<R>>;

Paramètres de modèle

R
Plage à référencer.

Membres

Fonctions membres Description
Constructeurs C++20 Construisez un ref_view.
baseC++20 Obtenez une référence à la plage sous-jacente.
beginC++20 Obtenez un itérateur au premier élément.
dataC++20 Obtenez un pointeur vers le premier élément de la plage référencée.
emptyC++20 Vérifiez si cela ref_view est vide.
endC++20 Obtenez la sentinelle à la fin de ce ref_view.
sizeC++20 Obtenez le nombre d’éléments. La plage sous-jacente doit satisfaire sized_range.
Hérité de view_interface Description
backC++20 Obtenez le dernier élément.
frontC++20 Obtenez le premier élément.
operator[]C++20 Obtenez l’élément à la position spécifiée.
operator boolC++20 Testez si ce ref_view n’est pas vide.

Afficher les caractéristiques

Pour obtenir une description des entrées suivantes, consultez les caractéristiques de classe View

Caractéristique Description
Adaptateur de plage views::all ou views::common
Plage sous-jacente Doit satisfaire input_range
Type d’élément Identique à la plage sous-jacente
Afficher la catégorie d’itérateur Identique à la plage sous-jacente
Taille Uniquement si la plage sous-jacente satisfait sized_range
Est const-itérable Oui
Plage commune Uniquement si la plage sous-jacente satisfait common_range
Plage empruntée Oui

Spécifications

En-tête : <ranges> (depuis C++20)

Espace de noms : std::ranges

Option du compilateur : /std:c++20 ou version ultérieure est requise.

Constructeurs

Construire une instance d’un ref_view

// construct a ref_view from a range
template<different-from<ref_view> R>
constexpr ref_view(R&& rg);

Paramètres

rg
Plage à référencer.

Pour plus d’informations sur le type de paramètre de modèle, consultez Paramètres de modèle.

Valeur retournée

Instance de ref_view.

Notes

La meilleure façon de créer un ref_view est d’utiliser l’adaptateur views::all de plage. Les adaptateurs de plage sont la méthode prévue pour créer des classes d’affichage. Les types d’affichage sont exposés au cas où vous souhaitez créer votre propre type d’affichage personnalisé.

Il ref_view est utile de convertir un conteneur en vue. Par exemple, vous pouvez utiliser ref_view pour convertir un vector affichage, ce qui rend peu coûteux de passer les éléments du vecteur autour.

Exemple : ref_view

// requires /std:c++20 or later
#include <ranges>
#include <iostream>
#include <vector>

int main()
{
    std::vector<int> v = {1,2,3};
    auto refView = std::views::all(v);
    std::cout << &refView[1] << " : " << &v[1]; // outputs two identical memory addresses, e.g. 00000239AFAFDF90 : 00000239AFAFDF90
    refView[0] = 10; // modifies v[0]
    std::cout << "\n" << v[0]; // 10
}
00000239AFAFDF90 : 00000239AFAFDF90
10

base

Obtient une copie de la plage sous-jacente.

constexpr R& base() const;

Paramètres

Aucune.

Valeur retournée

Plage sous-jacente.

begin

Obtenez un itérateur au premier élément du ref_view.

constexpr iterator_t<R> begin() const;

Paramètres

Aucune.

Valeur retournée

Itérateur pointant vers le premier élément de ce ref_view.

Image d’un vecteur avec les éléments 10, 20 et 30. Le premier élément contient 10 et est étiqueté begin(). Le dernier élément contient 30 et est intitulé « dernier élément ». Une zone imaginaire après le dernier élément indique la sentinelle et est étiquetée end().

data

Obtenez un pointeur vers le premier élément de ce ref_view. Les éléments de la plage doivent être contigus.

constexpr auto data() const requires contiguous_range<R>;

Paramètres

Aucune.

Valeur retournée

Pointeur vers le premier élément.

empty

Vérifiez si cela ref_view est vide.

constexpr bool empty() const

Paramètres

Aucune.

Valeur retournée

Retourne true si le ref_view fichier ne contient aucun élément. Sinon, false.

end

Obtenez la sentinelle à la fin de ce ref_view.

constexpr sentinel_t<R> end() const

Valeur retournée

Sentinel qui suit le dernier élément de ce qui suit ref_view:

Image d’un vecteur avec les éléments 10, 20 et 30. Le premier élément contient 10 et est étiqueté begin(). Le dernier élément contient 30 et est intitulé « dernier élément ». Une zone imaginaire après le dernier élément indique la sentinelle et est étiquetée end().

size

Obtenez le nombre d’éléments.

constexpr auto size() const requires sized_range<R>

Paramètres

Aucune.

Valeur retournée

Nombre d'éléments dans ref_view.

Voir aussi

<ranges>
all adaptateur de plage
afficher les classes