Bagikan melalui


single_view kelas (Pustaka Standar C++)

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

Lihat juga

<ranges>
single adaptor rentang
empty_view
Melihat kelas