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 elemen rentang dalam urutan terbalik.
Sintaks
template<ranges::view V>
requires ranges::bidirectional_range<V>
class reverse_view : public ranges::view_interface<reverse_view<V>>;
Parameter template
V
Jenis tampilan yang mendasar.
Jenis ini harus memuaskan ranges::bidirectional_range.
Melihat karakteristik
Untuk deskripsi entri berikut, lihat Menampilkan karakteristik kelas
| Karakteristik | Deskripsi |
|---|---|
| Adaptor rentang | views::reverse |
| Rentang yang mendasar | Harus memuaskan bidirectional_range hingga random_access_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 |
Hanya jika rentang yang mendasar adalah common_view dan memenuhi const-iterable |
| Rentang umum | Ya |
| Rentang yang dipinjam | Hanya jika rentang yang mendasar memenuhi borrowed_range |
Anggota
| Fungsi anggota | Keterangan |
|---|---|
| KonstruktorC++20 | reverse_viewBuat . |
baseC++20 |
Dapatkan rentang yang mendasar. |
beginC++20 |
Dapatkan iterator ke elemen pertama. |
endC++20 |
Dapatkan sentinel di akhir reverse_view. |
sizeC++20 |
Dapatkan jumlah elemen. |
Diwariskan dari view_interface |
Keterangan |
backC++20 |
Dapatkan elemen terakhir. |
emptyC++20 |
Uji apakah reverse_view kosong. |
frontC++20 |
Dapatkan elemen pertama. |
operator[]C++20 |
Dapatkan elemen pada posisi yang ditentukan. |
operator boolC++20 |
Uji apakah reverse_view tidak kosong. |
Persyaratan
Header: <ranges> (sejak C++20)
kumpulan nama XML: std::ranges
Opsi Pengkompilasi: /std:c++20 atau yang lebih baru diperlukan.
Konstruktor
Buat instans dari reverse_view tampilan dua arah.
1) reverse_view() requires default_initializable<V> = default; // default-constructs the underlying view
2) constexpr explicit reverse_view(V rg); // initializes the underlying view via std::move(r)
Parameter
rg
Tampilan untuk memberikan tampilan terbalik.
Untuk informasi tentang jenis parameter templat, lihat Parameter templat.
Nilai hasil
Tampilan rentang yang mendasar, dalam urutan terbalik.
Keterangan
Cara terbaik untuk membuat adalah reverse_view dengan menggunakan views::reverse adaptor rentang. Adaptor rentang adalah cara yang dimaksudkan untuk membuat kelas tampilan. Jenis tampilan diekspos jika Anda ingin membuat jenis tampilan kustom Anda sendiri.
1) Konstruktor default menginisialisasi default reverse_view.
2) Buat reverse_view dari tampilan yang ditentukan.
Contoh: reverse_view
// requires /std:c++20 or later
#include <ranges>
#include <iostream>
#include <vector>
int main()
{
std::vector<int> v{0, 1, 2, 3, -4, 5, 6};
auto rv = v | std::views::reverse;
for (auto e : rv) // 6 5 -4 3 2 1 0
{
std::cout << e << ' ';
}
}
6 5 -4 3 2 1 0
base
Mendapatkan salinan tampilan yang mendasar.
// Uses a copy constructor to return the underlying view
constexpr V base() const& requires std::copy_constructible<V>;
// Uses a move constructor to return the underlying view
constexpr V base() &&;
Parameter
Tidak ada.
Nilai hasil
Tampilan yang mendasar.
begin
Dapatkan iterator ke elemen pertama di reverse_view.
1) constexpr reverse_iterator<iterator_t<V>> begin();
2) constexpr reverse_iterator<iterator_t<V>> begin() requires common_range<V>;
3) constexpr auto begin() const requires common_range<const V>;
Parameter
Tidak ada.
Nilai hasil
Iterator yang menunjuk pada elemen pertama di reverse_view.
Keterangan
Setelah panggilan pertama ke begin(), panggilan berikutnya berjalan dalam waktu konstan, O(1), tidak peduli berapa banyak elemen dalam reverse_view. Ini memiliki implikasi karena reverse_view menyimpan nilai last sehingga dapat mengembalikannya berulang kali dari begin. Ini berarti Anda tidak boleh menggunakan kembali tampilan setelah kontainer yang mendasar dimodifikasi. Jika rentang yang mendasar dimodifikasi, buat tampilan baru, yang murah.
2) Tampilan yang mendasar harus memuaskan common_range, yang berarti bahwa tampilan yang mendasar harus memiliki jenis perulangan awal dan akhir yang sama.
3) Tampilan yang mendasar harus memenuhi common_range tampilan const untuk melakukan iterasi melalui const reverse_view.
end
Dapatkan sentinel di akhir reverse_view
1) constexpr reverse_iterator<iterator_t<V>> end();
2) constexpr auto end() const requires common_range<const V>;
Parameter
Tidak ada.
Nilai hasil
Sentinel yang mengikuti elemen terakhir dalam reverse_view.
Keterangan
Untuk 2, tampilan yang mendasar harus dipenuhi common_range untuk tampilan const, yang berarti bahwa tampilan yang mendasar harus memiliki jenis perulangan awal dan akhir yang sama.
size
Dapatkan jumlah elemen.
constexpr auto size() requires ranges::sized_range<V>;
constexpr auto size() const requires ranges::sized_range<const V>;
Parameter
Tidak ada.
Nilai hasil
Jumlah elemen dalam reverse_view.
Keterangan
Ukuran tampilan hanya tersedia jika rentang yang mendasar adalah sized_range, atau dengan kata lain, terikat.