Freigeben über


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.
beginC++20 Rufen Sie einen Iterator für das Element ab.
dataC++20 Rufen Sie einen Zeiger auf das Element ab.
endC++20 Rufen Sie den Sentinel am Ende der Ansicht ab.
sizeC++20 Ruft die Anzahl der Elemente ab. Gibt immer 1 zurück.
Geerbt von view_interface Beschreibung
backC++20 Rufen Sie das Element ab.
emptyC++20 Testen Sie, ob die Ansicht leer ist (gibt immer zurück false).
frontC++20 Rufen Sie das Element ab.
operator[]C++20 Ruft das Element an der angegebenen Position ab (nur Position 0 ist gültig).
operator boolC++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

Weitere Informationen

<ranges>
single Range Adaptor
empty_view
Anzeigen von Klassen