take_view
classe (bibliothèque standard C++)
Vue des premiers éléments N d’une autre vue.
Syntaxe
template<view V>
class take_view : public view_interface<take_view<V>>;
Paramètres de modèle
V
Type de la plage sous-jacente.
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::take |
Plage sous-jacente | Toute plage |
Type d’élément | Identique à la plage sous-jacente |
Afficher la catégorie d’itérateur | Identique à la plage sous-jacente |
Taille | Non |
Est const -itérable |
Uniquement si la plage sous-jacente est const itérable |
Plage commune | Uniquement si la plage sous-jacente satisfait random_access_range et sized_range |
Plage empruntée | Uniquement si la plage sous-jacente est borrowed_range |
Membres
Fonctions membres | Description |
---|---|
Constructeurs | Construisez la vue. |
base C++20 |
Obtenez la plage sous-jacente. |
begin C++20 |
Obtenez un itérateur au premier élément. |
end C++20 |
Obtenez la sentinelle à la fin de la vue. |
size C++20 |
Obtenez le nombre d’éléments. La plage sous-jacente doit satisfaire sized_range . |
Hérité de view_interface |
Description |
back C++20 |
Obtenez le dernier élément. |
data C++20 |
Obtenez un pointeur vers le premier élément. |
empty C++20 |
Testez si la vue est vide. |
front C++20 |
Obtenez le premier élément. |
operator[] C++20 |
Obtenez l’élément à la position spécifiée. |
operator bool C++20 |
Testez si la vue n’est pas vide. |
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 take_view
1) take_view() requires default_initializable<V> = default;
2) constexpr take_view(V base, range_difference_t<V> count);
Paramètres
base
Vue sous-jacente.
count
Nombre d’éléments à prendre à partir de l’avant de la vue sous-jacente. Si count
elle est supérieure au nombre d’éléments de la vue sous-jacente, la vue contient tous les éléments de la plage sous-jacente.
Pour plus d’informations sur le type de paramètre de modèle, consultez Paramètres de modèle.
Valeur retournée
A take_view
, qui est une vue des premiers éléments N d’une autre vue. Si vous spécifiez plus d’éléments à supprimer qu’il n’existe dans la plage sous-jacente, un empty_view
élément est retourné.
Notes
La meilleure façon de créer un take_view
est d’utiliser l’adaptateur views::take
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 uniquement si vous souhaitez créer votre propre type d’affichage personnalisé.
1) Créez un take_view
élément qui n’a aucun élément. La vue sous-jacente est construite par défaut. base()
retourne une copie de V()
.
2) Créez une take_view
valeur à partir d’un nombre et d’un base
nombre. base
est déplacé via std::move()
.
Si count
elle est inférieure au nombre d’éléments de la plage sous-jacente, count
détermine la taille du take_view
.
Si count
elle est supérieure au nombre d’éléments de la plage sous-jacente, elle take_view
inclut tous les éléments de la plage sous-jacente.
Exemple : take_view
// requires /std:c++20 or later
#include <ranges>
#include <iostream>
#include <vector>
int main()
{
std::vector<int> v{0, 1, 2, 3, 4, 5, 6};
auto newView = std::views::take(v, 3);
for (auto& e : newView)
{
std::cout << e << ' '; // 0 1 2
}
std::cout << '\n';
// Use the '|' operator to create a take_view
for (auto i : v | std::views::take(3))
{
std::cout << i << ' '; // 0 1 2
}
}
0 1 2
0 1 2
base
Obtient une copie de la vue sous-jacente.
// Uses a copy constructor to return the underlying view
1) constexpr V base() const & requires std::copy_constructible<V>;
// Uses a move constructor to return the underlying view
2) constexpr V base() &&;
Paramètres
Aucune.
Valeur retournée
Vue sous-jacente.
begin
Obtenez un itérateur sur le premier élément de la vue.
constexpr auto begin() requires (!Simple_view<V>);
constexpr auto begin() const requires range<const V>;
Paramètres
Aucune.
Valeur retournée
Itérateur pointant vers le premier élément de la vue.
Notes
Pour 1, l’exigence Simple_view<V>
signifie que la vue V
et const V
doit avoir le même itérateur et les mêmes types de sentinelles.
end
Obtenez la sentinelle à la fin de la vue.
1) constexpr auto end() requires !(Simple_view<V>);
2) constexpr auto end() const requires range<const V>;
Paramètres
Aucune.
Valeur retournée
Sentinel qui suit le dernier élément de la vue.
Notes
Pour 1, l’exigence Simple_view<V>
signifie que la vue V
et const V
doit avoir le même itérateur et les mêmes types de sentinelles.
size
Obtenez le nombre d’éléments.
constexpr auto size() requires sized_range<V>;
constexpr auto size() const requires sized_range<const V>;
Paramètres
Aucune.
Valeur retournée
Nombre d'éléments dans take_view
.
Si l’objet take_view
a été construit avec un élément explicite count
:
- si
count
elle est inférieure au nombre d’éléments de la plage sous-jacente, elle est retournée comme taille de l’affichage. - si
count
elle est supérieure au nombre d’éléments de la plage sous-jacente, la taille de la vue estranges::size(base)
.
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour