Sdílet prostřednictvím


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.
baseC++20 Získejte odkaz na podkladovou oblast.
beginC++20 Získejte iterátor k prvnímu prvku.
endC++20 Získejte sentinel na konci zobrazení.
Zděděno z view_interface Popis
backC++20 Získejte poslední prvek.
emptyC++20 Otestujte, jestli je zobrazení prázdné.
frontC++20 Získejte první prvek.
operator boolC++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

  1. Vrácené zobrazení je vytvořené kopírováním.
  2. 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í:

Obrázek vektoru s prvky 10, 20 a 30 První prvek obsahuje hodnotu 10 a je označen jako begin(). Poslední prvek obsahuje hodnotu 30 a je označený jako

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í:

Obrázek vektoru s prvky 10, 20 a 30 První prvek obsahuje hodnotu 10 a je označen jako begin(). Poslední prvek obsahuje hodnotu 30 a je označený jako

Viz také

join adaptér rozsahu
<ranges>
zobrazit třídy