Sdílet prostřednictvím


single_view class (standardní knihovna jazyka C++)

Zobrazení, které má pouze jeden prvek. Toto zobrazení je užitečné pro účely testování pro volání kódu, který je potřeba poskytnout v zobrazení s alespoň jedním prvkem.

Syntaxe

template<std::copy_constructible T>
  requires std::is_object_v<T>
class single_view : public ranges::view_interface<single_view<T>>

Parametry šablony

T
Typ elementu.

Zobrazení charakteristik

Popis následujících položek naleznete v tématu Zobrazení vlastností třídy.

Charakteristika Popis
Adaptér rozsahu views::single
Podkladová oblast Nic
Typ elementu Zadané při single_view vytvoření
Zobrazit kategorii iterátoru contiguous_range
Tříděný Vždy vrátí hodnotu 1.
Je const-iterable Ano
Společný rozsah Ano
Zapůjčený rozsah No

Členové

Členské funkce Popis
KonstruktoryC++20 Vytvoření .single_view
beginC++20 Získejte iterátor k prvku.
dataC++20 Získejte ukazatel na prvek.
endC++20 Získejte sentinel na konci zobrazení.
sizeC++20 Získá počet prvků. Vždy vrátí hodnotu 1.
Zděděno z view_interface Popis
backC++20 Získejte prvek.
emptyC++20 Otestujte, jestli je zobrazení prázdné (vždy vrátí false).
frontC++20 Získejte prvek.
operator[]C++20 Získá prvek na zadané pozici (je platná pouze pozice 0).
operator boolC++20 Otestujte, jestli zobrazení není prázdné (vždy se vrátí false).

Poznámky

Nejlepší způsob, jak vytvořit, single_view je použití adaptéru rozsahu views::single . Adaptéry rozsahu představují zamýšlený způsob vytváření tříd zobrazení. Typy zobrazení jsou vystaveny pro případ, že chcete vytvořit vlastní typ zobrazení.

Hodnotu v objektu single_view lze upravit, pokud není consthodnota šablony . Například: single_view<const float> sv{3.14} // this value can't be modified because it's const.

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 single_view.

1) single_view() = default;
2) constexpr explicit single_view(const T& t);
3) constexpr explicit single_view(T&& t);
4) template<class... Args>
        requires constructible_from<T, Args...>
    constexpr single_view(in_place_t, Args&&... args);

Parametry

t
Hodnota elementu.

Informace o typu parametru šablony naleznete v tématu Parametry šablony.

Poznámky

Nejlepší způsob, jak vytvořit, single_view je použití adaptéru rozsahu views::single .

1) Vytvořte s jedním prvkem single_view zadaného typu, který je vytvořen jako výchozí. Například single_view<float> sv{} vytvoří s jedním prvkem single_view typufloat, který je vytvořen jako výchozí .0.0
2) Vytvořte s jedním prvkem single_view zadaného typu, který je inicializován z zadaného argumentu. Například single_view<myObjectType> sv{myObject} vytvoří s jedním prvkem single_view typu myObjectType , který je z argumentu inicializován kopírováním.
3) Vytvořte s jedním prvkem single_view zadaného typu, který je inicializován z argumentu.
4) Vytvořte s jedním prvkem single_view zadaného typu inicializovaný pomocí (std::forward<Args>(args)...).

Příklad: single_view

/// requires /std:c++20 or higher
#include <ranges>
#include <iostream>
#include <string>
#include <tuple>

int main()
{
    std::ranges::single_view<int> sv{7};
    std::cout << sv.front() << " " << *sv.data() << "\n"; // 7 7

    std::ranges::single_view<std::tuple<int, std::string>> sv2{{6502, "8-bit"}};
    std::cout << std::get<0>(sv2[0]) << " " << std::get<1>(sv2[0]) << "\n"; // 6502 8-bit
}
7 7
6502 8-bit

begin

Získejte ukazatel na jeden prvek v zobrazení.

constexpr T* begin() noexcept;
constexpr const T* begin() const noexcept;

Parametry

Žádná

Vrácená hodnota

Ukazatel na jeden prvek uvnitř objektu single_view.

data

Získejte ukazatel na jeden prvek v objektu single_view.

constexpr T* data() noexcept;
constexpr const T* data() const noexcept;

Parametry

Žádná

Vrácená hodnota

Ukazatel na prvek v objektu single_view.

end

Získá ukazatel na sentinel za elementem.

constexpr T* end() noexcept;
constexpr const T* end() const noexcept;

Parametry

Žádná

Vrácená hodnota

Ukazatel na sentinel, který následuje za prvkem.

size

Získejte počet prvků v zobrazení. Vždy vrátí hodnotu 1.

static constexpr size_t size() noexcept;

Parametry

Žádná

Vrácená hodnota

1

Viz také

<ranges>
single adaptér rozsahu
empty_view
Zobrazit třídy