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.
Menggabungkan elemen rentang ke dalam satu tampilan.
Sintaks
template<input_range R> requires view<R> && input_range<range_reference_t<R>> &&
(is_reference_v<range_reference_t<R>> || view<range_value_t<R>>)
class join_view : public view_interface<join_view<R>>;
Parameter template
R
Jenis rentang yang mendasar. Harus memuaskan input_range atau lebih tinggi.
Melihat karakteristik
Untuk deskripsi entri berikut, lihat Menampilkan karakteristik kelas
| Karakteristik | Deskripsi |
|---|---|
| Adaptor rentang | views::join |
| Rentang yang mendasar | Harus memuaskan input_range atau lebih tinggi |
| Jenis elemen | Sama seperti rentang yang mendasar |
| Lihat kategori iterator | input_range hingga bidirectional_range tergantung pada rentang yang mendasar yang diulang |
| Ukuran | No |
Apakah const-iterable |
Hanya jika rentang yang mendasar dapat diulang const |
| Rentang umum | Hanya jika rentang yang mendasar memenuhi common_range |
| Rentang yang dipinjam | No |
Anggota
| Fungsi anggota | Keterangan |
|---|---|
| KonstruktorC++20 | Buat join_view. |
baseC++20 |
Dapatkan referensi ke rentang yang mendasar. |
beginC++20 |
Dapatkan iterator ke elemen pertama. |
endC++20 |
Dapatkan sentinel di akhir tampilan. |
Diwariskan dari view_interface |
Keterangan |
backC++20 |
Dapatkan elemen terakhir. |
emptyC++20 |
Uji apakah tampilan kosong. |
frontC++20 |
Dapatkan elemen pertama. |
operator boolC++20 |
Uji apakah tampilan tidak kosong. |
Keterangan
Cara terbaik untuk membuat adalah join_view dengan menggunakan views::join adaptor rentang. Adaptor rentang adalah cara yang dimaksudkan untuk mengakses kelas tampilan. Jenis tampilan diekspos jika Anda ingin membuat jenis tampilan kustom Anda sendiri.
Tampilan ini berguna saat Anda ingin menggabungkan beberapa rentang ke dalam satu tampilan.
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 join_view.
1) join_view() = default;
2) constexpr explicit join_view(R base)
Parameter
base
Rentang yang mendasar.
Untuk informasi tentang jenis parameter templat, lihat Parameter templat.
Keterangan
1) Default-membangun join_view.
2) Membangun join_view dari base.
Contoh: join_view
// requires /std:c++20 or later
#include <iostream>
#include <vector>
#include <ranges>
int main()
{
std::vector<int> rg1{1, 2, 3, 4};
std::vector<int> rg2{5, 6, 7};
std::vector<int> rg3{8, 9, 10, 11, 12, 13};
std::vector<int> rangeOfRanges[] {rg1, rg2, rg3};
auto jv = std::ranges::join_view(rangeOfRanges);
for (auto& e : jv)
{
std::cout << e << " ";
}
}
1 2 3 4 5 6 7 8 9 10 11 12 13
base
Dapatkan tampilan yang mendasar.
// Uses a copy constructor to return the underlying view
1) constexpr V base() const& requires std::copy_constructible<V>;
// Uses a move constructor to return the underlying view
2) constexpr V base() &&;
Parameter
Tidak ada.
Nilai hasil
- Tampilan yang dikembalikan dibuat salinannya.
- Tampilan yang dikembalikan dibangun.
begin
Dapatkan iterator ke elemen pertama dalam tampilan.
constexpr auto begin();
constexpr auto begin() const
requires ranges::input_range<const V> && std::is_reference_v<ranges::range_reference_t<const V>>;
Parameter
Tidak ada.
Nilai hasil
Iterator yang menunjuk pada elemen pertama dalam tampilan:
end
Dapatkan sentinel di akhir tampilan.
constexpr sentinel_t<R> end();
constexpr auto end() const requires range<const R>
Parameter
Tidak ada.
Nilai hasil
Sentinel yang mengikuti elemen terakhir dalam tampilan: