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 hanya memiliki satu elemen. Tampilan ini berguna untuk tujuan pengujian untuk memanggil kode yang perlu disediakan dengan tampilan dengan setidaknya satu elemen di dalamnya.
Sintaks
template<std::copy_constructible T>
requires std::is_object_v<T>
class single_view : public ranges::view_interface<single_view<T>>
Parameter template
T
Jenis elemen .
Melihat karakteristik
Untuk deskripsi entri berikut, lihat Menampilkan karakteristik kelas
| Karakteristik | Deskripsi |
|---|---|
| Adaptor rentang | views::single |
| Rentang yang mendasar | Tidak |
| Jenis elemen | Ditentukan ketika single_view dibuat |
| Lihat kategori iterator | contiguous_range |
| Ukuran | Selalu mengembalikan 1 |
Apakah const-iterable |
Ya |
| Rentang umum | Ya |
| Rentang yang dipinjam | No |
Anggota
| Fungsi anggota | Keterangan |
|---|---|
| KonstruktorC++20 | single_viewBuat . |
beginC++20 |
Dapatkan iterator ke elemen . |
dataC++20 |
Dapatkan penunjuk ke elemen . |
endC++20 |
Dapatkan sentinel di akhir tampilan. |
sizeC++20 |
Dapatkan jumlah elemen. Selalu mengembalikan 1. |
Diwariskan dari view_interface |
Keterangan |
backC++20 |
Dapatkan elemen . |
emptyC++20 |
Uji apakah tampilan kosong (selalu mengembalikan false). |
frontC++20 |
Dapatkan elemen . |
operator[]C++20 |
Dapatkan elemen pada posisi yang ditentukan (hanya posisi 0 yang valid). |
operator boolC++20 |
Uji apakah tampilan tidak kosong (selalu mengembalikan false). |
Keterangan
Cara terbaik untuk membuat adalah single_view dengan menggunakan views::single adaptor rentang. Adaptor rentang adalah cara yang dimaksudkan untuk membuat kelas tampilan. Jenis tampilan diekspos jika Anda ingin membuat jenis tampilan kustom Anda sendiri.
Nilai dalam dapat dimodifikasi single_view kecuali nilai templatnya adalah const. Misalnya: single_view<const float> sv{3.14} // this value can't be modified because it's const.
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 single_view.
1) single_view() = default;
2) constexpr explicit single_view(const T& t);
3) constexpr explicit single_view(T&& t);
4) template<class... Args>
requires constructible_from<T, Args...>
constexpr single_view(in_place_t, Args&&... args);
Parameter
t
Nilai elemen.
Untuk informasi tentang jenis parameter templat, lihat Parameter templat.
Keterangan
Cara terbaik untuk membuat adalah single_view dengan menggunakan views::single adaptor rentang.
1) Buat single_view dengan elemen tunggal dari jenis yang ditentukan yang dibuat secara default. Misalnya, single_view<float> sv{} membuat single_view dengan elemen tunggal jenis float yang secara default dibangun ke 0.0.
2) Buat single_view dengan elemen tunggal dari jenis yang ditentukan yang diinisialisasi salinan dari argumen yang ditentukan. Misalnya, single_view<myObjectType> sv{myObject} membuat single_view dengan elemen tunggal jenis myObjectType yang diinisialisasi salin dari argumen.
3) Buat single_view dengan elemen tunggal dari jenis yang ditentukan yang diinisialisasi pemindahan dari argumen.
4) Buat single_view dengan elemen tunggal dari jenis yang ditentukan yang diinisialisasi dengan (std::forward<Args>(args)...).
Contoh single_view
/// requires /std:c++20 or later
#include <ranges>
#include <iostream>
#include <string>
#include <tuple>
int main()
{
std::ranges::single_view<int> sv{7};
std::cout << sv.front() << " " << *sv.data() << "\n"; // 7 7
std::ranges::single_view<std::tuple<int, std::string>> sv2{{6502, "8-bit"}};
std::cout << std::get<0>(sv2[0]) << " " << std::get<1>(sv2[0]) << "\n"; // 6502 8-bit
}
7 7
6502 8-bit
begin
Dapatkan penunjuk ke elemen tunggal dalam tampilan.
constexpr T* begin() noexcept;
constexpr const T* begin() const noexcept;
Parameter
Tidak ada.
Nilai hasil
Penunjuk ke elemen tunggal di single_viewdalam .
data
Dapatkan penunjuk ke elemen tunggal di single_view.
constexpr T* data() noexcept;
constexpr const T* data() const noexcept;
Parameter
Tidak ada.
Nilai hasil
Penunjuk ke elemen di single_view.
end
Mendapatkan pointer ke sentinel setelah elemen .
constexpr T* end() noexcept;
constexpr const T* end() const noexcept;
Parameter
Tidak ada.
Nilai hasil
Penunjuk ke sentinel yang mengikuti elemen .
size
Dapatkan jumlah elemen dalam tampilan. Selalu mengembalikan 1.
static constexpr size_t size() noexcept;
Parameter
Tidak ada.
Nilai hasil
1