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 |
begin C++20 |
Získejte iterátor k prvku. |
data C++20 |
Získejte ukazatel na prvek. |
end C++20 |
Získejte sentinel na konci zobrazení. |
size C++20 |
Získá počet prvků. Vždy vrátí hodnotu 1 . |
Zděděno z view_interface |
Popis |
back C++20 |
Získejte prvek. |
empty C++20 |
Otestujte, jestli je zobrazení prázdné (vždy vrátí false ). |
front C++20 |
Získejte prvek. |
operator[] C++20 |
Získá prvek na zadané pozici (je platná pouze pozice 0). |
operator bool C++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í const
hodnota š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