Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Tampilan yang mereferensikan elemen yang termasuk dalam rentang lain.
Sintaks
template<std::ranges::range R>
requires std::is_object_v<R>
class ref_view : public ranges::view_interface<ref_view<R>>;
Parameter template
R
Rentang yang akan dirujuk.
Anggota
| Fungsi anggota | Keterangan |
|---|---|
| KonstruktorC++20 | ref_viewBuat . |
baseC++20 |
Dapatkan referensi ke rentang yang mendasar. |
beginC++20 |
Dapatkan iterator ke elemen pertama. |
dataC++20 |
Dapatkan penunjuk ke elemen pertama dalam rentang yang dirujuk. |
emptyC++20 |
Uji apakah ini ref_view kosong. |
endC++20 |
Dapatkan sentinel di akhir ini ref_view. |
sizeC++20 |
Dapatkan jumlah elemen. Rentang yang mendasar harus memuaskan sized_range. |
Diwariskan dari view_interface |
Keterangan |
backC++20 |
Dapatkan elemen terakhir. |
frontC++20 |
Dapatkan elemen pertama. |
operator[]C++20 |
Dapatkan elemen pada posisi yang ditentukan. |
operator boolC++20 |
Uji apakah ini ref_view tidak kosong. |
Melihat karakteristik
Untuk deskripsi entri berikut, lihat Menampilkan karakteristik kelas
| Karakteristik | Deskripsi |
|---|---|
| Adaptor rentang | views::all atau views::common |
| Rentang yang mendasar | Harus memuaskan input_range |
| Jenis elemen | Sama seperti rentang yang mendasar |
| Lihat kategori iterator | Sama seperti rentang yang mendasar |
| Ukuran | Hanya jika rentang yang mendasar memenuhi sized_range |
Apakah const-iterable |
Ya |
| Rentang umum | Hanya jika rentang yang mendasar memenuhi common_range |
| Rentang yang dipinjam | Ya |
Persyaratan
Header: <ranges> (sejak C++20)
kumpulan nama XML: std::ranges
Opsi Pengkompilasi: /std:c++20 atau yang lebih baru diperlukan.
Konstruktor
Membuat instans ref_view
// construct a ref_view from a range
template<different-from<ref_view> R>
constexpr ref_view(R&& rg);
Parameter
rg
Rentang yang akan dirujuk.
Untuk informasi tentang jenis parameter templat, lihat Parameter templat.
Nilai hasil
Instans ref_view.
Keterangan
Cara terbaik untuk membuat adalah ref_view dengan menggunakan views::all adaptor rentang. Adaptor rentang adalah cara yang dimaksudkan untuk membuat kelas tampilan. Jenis tampilan diekspos jika Anda ingin membuat jenis tampilan kustom Anda sendiri.
berguna ref_view untuk mengonversi kontainer menjadi tampilan. Misalnya, Anda dapat menggunakan ref_view untuk mengonversi vector ke tampilan, yang membuatnya murah untuk meneruskan elemen vektor.
Contoh: 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
Mendapatkan salinan rentang yang mendasar.
constexpr R& base() const;
Parameter
Tidak ada.
Nilai hasil
Rentang yang mendasar.
begin
Dapatkan iterator ke elemen pertama di ref_view.
constexpr iterator_t<R> begin() const;
Parameter
Tidak ada.
Nilai hasil
Iterator yang menunjuk pada elemen pertama dalam ini ref_view.
data
Dapatkan penunjuk ke elemen pertama dalam ini ref_view. Elemen dalam rentang harus bersebelah.
constexpr auto data() const requires contiguous_range<R>;
Parameter
Tidak ada.
Nilai hasil
Penunjuk ke elemen pertama.
empty
Uji apakah ini ref_view kosong.
constexpr bool empty() const
Parameter
Tidak ada.
Nilai hasil
Mengembalikan true jika ref_view tidak berisi elemen. Sebaliknya, false.
end
Dapatkan sentinel di akhir ini ref_view.
constexpr sentinel_t<R> end() const
Nilai hasil
Sentinel yang mengikuti elemen terakhir dalam hal ini ref_view:
size
Dapatkan jumlah elemen.
constexpr auto size() const requires sized_range<R>
Parameter
Tidak ada.
Nilai hasil
Jumlah elemen dalam ref_view.