join_view
class (standardní knihovna jazyka C++)
Kombinuje prvky rozsahu oblastí do jednoho zobrazení.
Syntaxe
template<input_range R> requires view<R> && input_range<range_reference_t<R>> &&
(is_reference_v<range_reference_t<R>> || view<range_value_t<R>>)
class join_view : public view_interface<join_view<R>>;
Parametry šablony
R
Typ podkladové oblasti. Musí splňovat input_range
nebo vyšší.
Zobrazení charakteristik
Popis následujících položek naleznete v tématu Zobrazení vlastností třídy.
Charakteristika | Popis |
---|---|
Adaptér rozsahu | views::join |
Podkladová oblast | Musí splňovat input_range nebo vyšší |
Typ elementu | Stejné jako podkladová oblast |
Zobrazit kategorii iterátoru | input_range až do bidirectional_range závislosti na rozsahu iterated |
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 požadavky common_range |
Zapůjčený rozsah | No |
Členové
Členské funkce | Popis |
---|---|
KonstruktoryC++20 | Vytvoření objektu join_view . |
base C++20 |
Získejte odkaz na podkladovou oblast. |
begin C++20 |
Získejte iterátor k prvnímu prvku. |
end C++20 |
Získejte sentinel na konci zobrazení. |
Zděděno z view_interface |
Popis |
back C++20 |
Získejte poslední prvek. |
empty C++20 |
Otestujte, jestli je zobrazení prázdné. |
front C++20 |
Získejte první prvek. |
operator bool C++20 |
Otestujte, jestli zobrazení není prázdné. |
Poznámky
Nejlepší způsob, jak vytvořit, join_view
je použití adaptéru rozsahu views::join
. Adaptéry rozsahu představují zamýšlený způsob přístupu ke třídám zobrazení. Typy zobrazení jsou vystaveny pro případ, že chcete vytvořit vlastní typ zobrazení.
Toto zobrazení je užitečné, když chcete zkombinovat více oblastí do jednoho zobrazení.
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řte instanci objektu join_view
.
1) join_view() = default;
2) constexpr explicit join_view(R base)
Parametry
base
Podkladová oblast.
Informace o typu parametru šablony naleznete v tématu Parametry šablony.
Poznámky
1) Default-constructs a join_view
.
2) Vytvoří join_view
z base
.
Příklad: join_view
// requires /std:c++20, or later
#include <iostream>
#include <vector>
#include <ranges>
int main()
{
std::vector<int> rg1{1, 2, 3, 4};
std::vector<int> rg2{5, 6, 7};
std::vector<int> rg3{8, 9, 10, 11, 12, 13};
std::vector<int> rangeOfRanges[] {rg1, rg2, rg3};
auto jv = std::ranges::join_view(rangeOfRanges);
for (auto& e : jv)
{
std::cout << e << " ";
}
}
1 2 3 4 5 6 7 8 9 10 11 12 13
base
Získejte podkladové 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
- Vrácené zobrazení je vytvořené kopírováním.
- Vrácené zobrazení je vytvořené.
begin
Získejte iterátor k prvnímu prvku v zobrazení.
constexpr auto begin();
constexpr auto begin() const
requires ranges::input_range<const V> && std::is_reference_v<ranges::range_reference_t<const V>>;
Parametry
Žádná
Vrácená hodnota
Iterátor ukazující na první prvek v zobrazení:
end
Získejte sentinel na konci zobrazení.
constexpr sentinel_t<R> end();
constexpr auto end() const requires range<const R>
Parametry
Žádná
Vrácená hodnota
Sentinel, který následuje za posledním prvkem v zobrazení: