ref_view
classe (libreria standard C++)
Visualizzazione che fa riferimento agli elementi appartenenti a un altro intervallo.
Sintassi
template<std::ranges::range R>
requires std::is_object_v<R>
class ref_view : public ranges::view_interface<ref_view<R>>;
Parametri del modello
R
Intervallo a cui fare riferimento.
Membri
Funzioni membro | Descrizione |
---|---|
Costruttori C++20 | Creare un oggetto ref_view . |
base C++20 |
Ottenere un riferimento all'intervallo sottostante. |
begin C++20 |
Ottenere un iteratore al primo elemento. |
data C++20 |
Ottenere un puntatore al primo elemento nell'intervallo a cui si fa riferimento. |
empty C++20 |
Verificare se l'oggetto ref_view è vuoto. |
end C++20 |
Ottenere la sentinel alla fine di questo ref_view oggetto . |
size C++20 |
Ottiene il numero di elementi. L'intervallo sottostante deve soddisfare sized_range . |
Ereditato da view_interface |
Descrizione |
back C++20 |
Ottiene l'ultimo elemento. |
front C++20 |
Ottenere il primo elemento. |
operator[] C++20 |
Ottiene l'elemento nella posizione specificata. |
operator bool C++20 |
Verificare se questo ref_view non è vuoto. |
Visualizzare le caratteristiche
Per una descrizione delle voci seguenti, vedere Visualizzare le caratteristiche della classe
Caratteristica | Descrizione |
---|---|
Adattatore di intervallo | views::all oppure views::common |
Intervallo sottostante | Deve soddisfare input_range |
Tipo di elemento | Uguale all'intervallo sottostante |
Visualizzare la categoria iteratore | Uguale all'intervallo sottostante |
Dimensioni | Solo se l'intervallo sottostante soddisfa sized_range |
Iterabile const |
Sì |
Intervallo comune | Solo se l'intervallo sottostante soddisfa common_range |
Intervallo preso in prestito | Sì |
Requisiti
Intestazione: <ranges>
(da C++20)
Spazio dei nomi: std::ranges
Opzione del compilatore: /std:c++20
o versione successiva è obbligatoria.
Costruttori
Costruire un'istanza di un oggetto ref_view
// construct a ref_view from a range
template<different-from<ref_view> R>
constexpr ref_view(R&& rg);
Parametri
rg
Intervallo a cui fare riferimento.
Per informazioni sul tipo di parametro del modello, vedere Parametri del modello.
Valore restituito
Istanza di ref_view
.
Osservazioni:
Il modo migliore per creare un ref_view
oggetto consiste nell'usare l'adattatore views::all
di intervallo. Gli adattatori di intervallo sono il modo previsto per creare classi di visualizzazione. I tipi di visualizzazione vengono esposti nel caso in cui si voglia creare un tipo di visualizzazione personalizzato.
Un ref_view
oggetto è utile per convertire un contenitore in una visualizzazione. Ad esempio, è possibile usare ref_view
per convertire un oggetto vector
in una visualizzazione, che rende più economico passare gli elementi del vettore intorno.
Esempio: 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
Ottiene una copia dell'intervallo sottostante.
constexpr R& base() const;
Parametri
Nessuna.
Valore restituito
Intervallo sottostante.
begin
Ottenere un iteratore al primo elemento dell'oggetto ref_view
.
constexpr iterator_t<R> begin() const;
Parametri
Nessuna.
Valore restituito
Iteratore che punta al primo elemento in questo ref_view
oggetto .
data
Ottenere un puntatore al primo elemento in questo ref_view
oggetto . Gli elementi nell'intervallo devono essere contigui.
constexpr auto data() const requires contiguous_range<R>;
Parametri
Nessuna.
Valore restituito
Puntatore al primo elemento.
empty
Verificare se l'oggetto ref_view
è vuoto.
constexpr bool empty() const
Parametri
Nessuna.
Valore restituito
Restituisce true
se l'oggetto ref_view
non contiene elementi. In caso contrario, false
.
end
Ottenere la sentinel alla fine di questo ref_view
oggetto .
constexpr sentinel_t<R> end() const
Valore restituito
Sentinel che segue l'ultimo elemento in questo ref_view
:
size
Ottiene il numero di elementi.
constexpr auto size() const requires sized_range<R>
Parametri
Nessuna.
Valore restituito
Numero di elementi in ref_view
.
Vedi anche
<ranges>
all
adattatore di intervallo
classi di visualizzazione