Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Zobrazení prvních N prvků z jiného zobrazení.
Syntaxe
template<view V>
class take_view : public view_interface<take_view<V>>;
Parametry šablony
V
Typ podkladové oblasti.
Zobrazení charakteristik
Popis následujících položek naleznete v tématu Zobrazení vlastností třídy.
| Charakteristika | Popis |
|---|---|
| Adaptér rozsahu | views::take |
| Podkladová oblast | Libovolný rozsah |
| Typ elementu | Stejné jako podkladová oblast |
| Zobrazit kategorii iterátoru | Stejné jako podkladová oblast |
| Tříděný | No |
Je const-iterable |
Pouze v případě, že je const základní rozsah iterovatelný |
| Společný rozsah | Pouze v případě, že základní rozsah splňuje random_access_range a sized_range |
| Zapůjčený rozsah | Pouze v případě, že je podkladová oblast borrowed_range |
Členové
| Členské funkce | Popis |
|---|---|
| Konstruktory | Vytvořte zobrazení. |
baseC++20 |
Získejte podkladovou oblast. |
beginC++20 |
Získejte iterátor k prvnímu prvku. |
endC++20 |
Získejte sentinel na konci zobrazení. |
sizeC++20 |
Získá počet prvků. Základní rozsah musí splňovat sized_range. |
Zděděno z view_interface |
Popis |
backC++20 |
Získejte poslední prvek. |
dataC++20 |
Získejte ukazatel na první prvek. |
emptyC++20 |
Otestujte, jestli je zobrazení prázdné. |
frontC++20 |
Získejte první prvek. |
operator[]C++20 |
Získejte prvek na zadané pozici. |
operator boolC++20 |
Otestujte, jestli zobrazení není prázdné. |
Požadavky
Hlavička: <ranges> (od C++20)
Obor názvů: std::ranges
Je vyžadována možnost kompilátoru: /std:c++20 nebo novější.
Konstruktory
Vytvoření instance objektu take_view
1) take_view() requires default_initializable<V> = default;
2) constexpr take_view(V base, range_difference_t<V> count);
Parametry
base
Podkladové zobrazení.
count
Počet prvků, které se mají vzít z přední části podkladového zobrazení. Pokud count je více než počet prvků v podkladovém zobrazení, bude zobrazení obsahovat všechny prvky v podkladové oblasti.
Informace o typu parametru šablony naleznete v tématu Parametry šablony.
Vrácená hodnota
A take_view, což je zobrazení prvních N prvků z jiného zobrazení. Pokud zadáte více prvků, které mají být v podkladové oblasti empty_view , vrátí se.
Poznámky
Nejlepší způsob, jak vytvořit, take_view je použití adaptéru rozsahu views::take . Adaptéry rozsahu představují zamýšlený způsob vytváření tříd zobrazení. Typy zobrazení se zobrazí jenom v případě, že chcete vytvořit vlastní typ zobrazení.
1) Vytvořte prvek take_view , který neobsahuje žádné prvky. Výchozí zobrazení je vytvořené. base()vrátí kopii .V()
2) Vytvořte z take_view a počet.base base se přesune přes std::move().
Pokud count je menší než počet prvků v podkladové oblasti, pak count určuje velikost take_view.
Pokud count je větší než počet prvků v podkladové oblasti, take_view zahrnuje všechny prvky v podkladové oblasti.
Příklad: 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
Získá kopii podkladového zobrazení.
// 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() &&;
Parametry
Žádná
Vrácená hodnota
Podkladové zobrazení.
begin
Získejte iterátor k prvnímu prvku v zobrazení.
constexpr auto begin() requires (!Simple_view<V>);
constexpr auto begin() const requires range<const V>;
Parametry
Žádná
Vrácená hodnota
Iterátor ukazující na první prvek v zobrazení.
Poznámky
Pro 1 požadavek znamená, Simple_view<V> že zobrazení V a const V musí mít stejné typy iterátoru a sentinelu.
end
Získejte sentinel na konci zobrazení.
1) constexpr auto end() requires !(Simple_view<V>);
2) constexpr auto end() const requires range<const V>;
Parametry
Žádná
Vrácená hodnota
Sentinel, který následuje za posledním prvkem v zobrazení.
Poznámky
Pro 1 požadavek znamená, Simple_view<V> že zobrazení V a const V musí mít stejné typy iterátoru a sentinelu.
size
Získá počet prvků.
constexpr auto size() requires sized_range<V>;
constexpr auto size() const requires sized_range<const V>;
Parametry
Žádná
Vrácená hodnota
Počet prvků v souboru take_view.
take_view Pokud byl vytvořen explicitněcount:
- pokud
countje menší než počet prvků v podkladové oblasti, vrátí se jako velikost zobrazení. - je-li
countvětší než počet prvků v podkladovém rozsahu, jeranges::size(base)velikost zobrazení .