Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Widok odwołujący się do elementów należących do innego zakresu.
Składnia
template<std::ranges::range R>
requires std::is_object_v<R>
class ref_view : public ranges::view_interface<ref_view<R>>;
Parametry szablonu
R
Zakres do odwołania.
Elementy członkowskie
| Funkcje składowe | Opis |
|---|---|
| KonstruktoryC++20 | Skonstruuj element ref_view. |
baseC++20 |
Uzyskaj odwołanie do bazowego zakresu. |
beginC++20 |
Pobierz iterator do pierwszego elementu. |
dataC++20 |
Pobierz wskaźnik do pierwszego elementu w odwołanym zakresie. |
emptyC++20 |
Sprawdź, czy jest to ref_view puste. |
endC++20 |
Pobierz element sentinel na końcu tego ref_viewobiektu . |
sizeC++20 |
Pobierz liczbę elementów. Zakres bazowy musi spełniać sized_rangewartość . |
Dziedziczone z view_interface |
Opis |
backC++20 |
Pobierz ostatni element. |
frontC++20 |
Pobierz pierwszy element. |
operator[]C++20 |
Pobierz element na określonej pozycji. |
operator boolC++20 |
Sprawdź, czy nie jest to ref_view puste. |
Właściwości widoku
Opis poniższych wpisów można znaleźć w temacie View class characteristics (Wyświetlanie właściwości klas)
| Characteristic | opis |
|---|---|
| Adapter zakresu | views::all lub views::common |
| Zakres bazowy | Musi spełniać wymagania input_range |
| Typ elementu | Taki sam jak zakres bazowy |
| Wyświetl kategorię iteratora | Taki sam jak zakres bazowy |
| Wielkości | Tylko wtedy, gdy zakres bazowy spełnia sized_range |
Jest constiterowalne |
Tak |
| Wspólny zakres | Tylko wtedy, gdy zakres bazowy spełnia common_range |
| Pożyczony zakres | Tak |
Wymagania
Nagłówek: <ranges> (od C++20)
Przestrzeń nazw: std::ranges
Opcja kompilatora: /std:c++20 lub nowsza jest wymagana.
Konstruktory
Konstruowanie wystąpienia obiektu ref_view
// construct a ref_view from a range
template<different-from<ref_view> R>
constexpr ref_view(R&& rg);
Parametry
rg
Zakres do odwołania.
Aby uzyskać informacje o typie parametru szablonu, zobacz Parametry szablonu.
Wartość zwracana
ref_view Wystąpienie.
Uwagi
Najlepszym sposobem utworzenia elementu ref_view jest użycie adaptera views::all zakresu. Adaptery zakresów są zamierzonym sposobem tworzenia klas widoków. Typy widoków są widoczne w przypadku utworzenia własnego niestandardowego typu widoku.
Element jest ref_view przydatny do konwertowania kontenera na widok. Na przykład można użyć ref_view polecenia , aby przekonwertować vector element na widok, co sprawia, że niedrogi jest przekazywanie elementów wektora wokół.
Przykład: ref_view
// requires /std:c++20 or later
#include <ranges>
#include <iostream>
#include <vector>
int main()
{
std::vector<int> v = {1,2,3};
auto refView = std::views::all(v);
std::cout << &refView[1] << " : " << &v[1]; // outputs two identical memory addresses, e.g. 00000239AFAFDF90 : 00000239AFAFDF90
refView[0] = 10; // modifies v[0]
std::cout << "\n" << v[0]; // 10
}
00000239AFAFDF90 : 00000239AFAFDF90
10
base
Pobiera kopię bazowego zakresu.
constexpr R& base() const;
Parametry
Brak.
Wartość zwracana
Zakres bazowy.
begin
Pobierz iterator do pierwszego elementu w pliku ref_view.
constexpr iterator_t<R> begin() const;
Parametry
Brak.
Wartość zwracana
Iterator wskazujący na pierwszy element w tym ref_viewelemecie .
data
Pobierz wskaźnik do pierwszego elementu w tym ref_viewelemecie . Elementy w zakresie muszą być ciągłe.
constexpr auto data() const requires contiguous_range<R>;
Parametry
Brak.
Wartość zwracana
Wskaźnik do pierwszego elementu.
empty
Sprawdź, czy jest to ref_view puste.
constexpr bool empty() const
Parametry
Brak.
Wartość zwracana
Zwraca wartość true , jeśli element ref_view nie zawiera żadnych elementów. W przeciwnym razie wartość false.
end
Pobierz element sentinel na końcu tego ref_viewobiektu .
constexpr sentinel_t<R> end() const
Wartość zwracana
Element sentinel, który jest zgodny z ostatnim elementem w tym ref_viewelemecie :
size
Pobierz liczbę elementów.
constexpr auto size() const requires sized_range<R>
Parametry
Brak.
Wartość zwracana
Liczba elementów w elem.ref_view