single_view
Klasse (C++-Standardbibliothek)
Eine Ansicht, die nur ein Element enthält. Diese Ansicht eignet sich für Testzwecke zum Aufrufen von Code, der mit einer Ansicht mit mindestens einem Element darin bereitgestellt werden muss.
Syntax
template<std::copy_constructible T>
requires std::is_object_v<T>
class single_view : public ranges::view_interface<single_view<T>>
Vorlagenparameter
T
Der Typ des Elements.
Eigenschaften der Ansicht
Eine Beschreibung der folgenden Einträge finden Sie unter Anzeigen von Klassenmerkmalen
Merkmal | Beschreibung |
---|---|
Range Adaptor | views::single |
Zugrunde liegender Bereich | Keine |
Elementtyp | Beim Erstellen des Vorgangs single_view angegeben |
Iteratorkategorie anzeigen | contiguous_range |
Größer eingestellt | Gibt immer 1 zurück. |
Ist const -iterierbar |
Ja |
Allgemeiner Bereich | Ja |
Geliehener Bereich | No |
Member
Memberfunktionen | Beschreibung |
---|---|
Konstruktoren C++20 | Erstellen Sie ein single_view . |
begin C++20 |
Rufen Sie einen Iterator für das Element ab. |
data C++20 |
Rufen Sie einen Zeiger auf das Element ab. |
end C++20 |
Rufen Sie den Sentinel am Ende der Ansicht ab. |
size C++20 |
Ruft die Anzahl der Elemente ab. Gibt immer 1 zurück. |
Geerbt von view_interface |
Beschreibung |
back C++20 |
Rufen Sie das Element ab. |
empty C++20 |
Testen Sie, ob die Ansicht leer ist (gibt immer zurück false ). |
front C++20 |
Rufen Sie das Element ab. |
operator[] C++20 |
Ruft das Element an der angegebenen Position ab (nur Position 0 ist gültig). |
operator bool C++20 |
Testen Sie, ob die Ansicht nicht leer ist (immer zurückgegeben false ). |
Hinweise
Die beste Methode zum Erstellen eines Steuerelements single_view
ist die Verwendung des views::single
Bereichsadapters. Bereichsadapter sind die beabsichtigte Möglichkeit zum Erstellen von Ansichtsklassen. Die Ansichtstypen werden für den Fall verfügbar gemacht, dass Sie ihren eigenen benutzerdefinierten Ansichtstyp erstellen möchten.
Der Wert in der single_view
Kann geändert werden, es sei denn, der Vorlagenwert ist const
. Beispiel: single_view<const float> sv{3.14} // this value can't be modified because it's const
Anforderungen
Header: <ranges>
(seit C++20)
Namespace:std::ranges
Compileroption: /std:c++20
oder höher ist erforderlich.
Konstruktoren
Erstellen Sie eine Instanz von 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);
Parameter
t
Der Elementwert.
Informationen zum Vorlagenparametertyp finden Sie unter Vorlagenparameter.
Hinweise
Die beste Methode zum Erstellen eines Steuerelements single_view
ist die Verwendung des views::single
Bereichsadapters.
1) Erstellen Sie ein single_view
einzelnes Element des angegebenen Typs, der standardmäßig erstellt wird. Erstellt z. B. ein single_view
einzelnes Element vom Typfloat
, das standardmäßig erstellt wird0.0
. single_view<float> sv{}
2) Erstellen Sie einen single_view
mit einem einzelnen Element des angegebenen Typs, der aus dem angegebenen Argument kopiert initialisiert wird. Erstellt z. B single_view<myObjectType> sv{myObject}
. ein single_view
einzelnes Element vom Typ myObjectType
, das aus dem Argument kopiert initialisiert wird.
3) Erstellen Sie ein single_view
einzelnes Element des angegebenen Typs, das aus dem Argument verschoben initialisiert wird.
4) Erstellen Sie eine single_view
mit einem einzelnen Element des angegebenen Typs initialisiert mit (std::forward<Args>(args)...)
.
Beispiel: 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
Rufen Sie einen Zeiger auf das einzelne Element in der Ansicht ab.
constexpr T* begin() noexcept;
constexpr const T* begin() const noexcept;
Parameter
Keine
Rückgabewert
Ein Zeiger auf das einzelne Element innerhalb der single_view
.
data
Rufen Sie einen Zeiger auf das einzelne Element in der single_view
.
constexpr T* data() noexcept;
constexpr const T* data() const noexcept;
Parameter
Keine
Rückgabewert
Ein Zeiger auf das Element in der single_view
.
end
Ruft einen Zeiger auf den Sentinel nach dem Element ab.
constexpr T* end() noexcept;
constexpr const T* end() const noexcept;
Parameter
Keine
Rückgabewert
Ein Zeiger auf den Sentinel, der auf das Element folgt.
size
Ruft die Anzahl der Elemente in der Ansicht ab. Gibt immer 1
zurück.
static constexpr size_t size() noexcept;
Parameter
Keine
Rückgabewert
1
Siehe auch
<ranges>
single
Range Adaptor
empty_view
Anzeigen von Klassen