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 terdiri dari indeks kedua ke dalam setiap nilai seperti tuple dalam koleksi. Misalnya, mengingat rentang std::tuple<string, int> nilai, buat tampilan yang terdiri dari semua int elemen dari setiap tuple.
values_view adalah alias untuk elements_view<R, 1> dan berguna untuk membuat tampilan nilai dalam kontainer asosiatif seperti std::unordered_map.
Sintaks
template<input_range R>
using values_view = ranges::elements_view<R, 1>;
Parameter template
R
Jenis rentang yang mendasar. Jenis ini harus memuaskan ranges::input_range.
Melihat karakteristik
Untuk deskripsi entri berikut, lihat Menampilkan karakteristik kelas
| Karakteristik | Deskripsi |
|---|---|
| Adaptor rentang | views::values |
| Rentang yang mendasar | Harus memuaskan forward_range atau lebih tinggi |
| Jenis elemen | Sama seperti jenis elemen tuple kedua |
| Lihat kategori iterator | forward_range, bidirectional_range, atau random_access_range |
| Ukuran | Hanya jika rentang yang mendasar memenuhi sized_range |
Apakah const-iterable |
Hanya jika rentang yang mendasar memenuhi const-iterable |
| Rentang umum | Hanya jika rentang yang mendasar memenuhi common_range |
| Rentang yang dipinjam | Hanya jika rentang yang mendasar memenuhi borrowed_range |
Anggota
| Fungsi anggota | Keterangan |
|---|---|
| KonstruktorC++20 | values_viewBuat . |
baseC++20 |
Dapatkan rentang yang mendasar. |
beginC++20 |
Dapatkan iterator ke elemen pertama. |
endC++20 |
Dapatkan sentinel di akhir values_view. |
sizeC++20 |
Dapatkan jumlah elemen. |
Diwariskan dari view_interface |
Keterangan |
backC++20 |
Dapatkan elemen terakhir. |
emptyC++20 |
Uji apakah values_view kosong. |
frontC++20 |
Dapatkan elemen pertama. |
operator[]C++20 |
Dapatkan elemen pada posisi yang ditentukan. |
operator boolC++20 |
Uji apakah values_view tidak kosong. |
Persyaratan
Header: <ranges> (sejak C++20)
kumpulan nama XML: std::ranges
Opsi Pengkompilasi: /std:c++20 atau yang lebih baru diperlukan.
Keterangan
Jenis seperti tuple yang dapat Anda gunakan adalah values_view std::tuple, , std::pairdan std::array.
Konstruktor
Buat instans dari values_view.
1) constexpr values_view(R base);
2) values_view() requires default_initializable<V> = default;
Parameter
base
Rentang jenis seperti tuple yang mendasar.
Untuk informasi tentang jenis parameter templat, lihat Parameter templat.
Nilai hasil
Instans values_view .
Keterangan
Cara terbaik untuk membuat values_view adalah dengan menggunakan values adaptor rentang. Adaptor rentang adalah cara yang dimaksudkan untuk membuat kelas tampilan. Jenis tampilan diekspos jika Anda ingin membuat jenis tampilan kustom Anda sendiri.
values_viewBuat dari tampilan yang ditentukan.- Konstruktor default membuat konstruksi default
values_view.
Contoh: values_view
// requires /std:c++20 or later
#include <ranges>
#include <iostream>
#include <map>
#include <string>
#include <utility>
#include <vector>
int main()
{
// ========== work with a std::map
std::map<std::string, int> cpp_standards
{
{"C++98", 1988},
{"C++03", 2003},
{"C++11", 2011},
{"C++14", 2014},
{"C++17", 2017},
{"C++20", 2020}
};
// Extract all of the values from the map
for (int years : std::views::values(cpp_standards))
{
std::cout << years << ' '; // 2003 2011 2014 2017 1988 2020
}
std::cout << '\n';
// ========== work with a std::pair
std::vector<std::pair<std::string, int>> windows
{
{"Windows 1.0", 1985},
{"Windows 2.0", 1987},
{"Windows 3.0", 1990},
{"Windows 3.1", 1992},
{"Windows NT 3.1", 1993},
{"Windows 95", 1995},
{"Windows NT 4.0", 1996},
{"Windows 95", 1995},
{"Windows 98", 1998},
{"Windows 1.0", 1985},
{"Windows 2000", 2000}
};
// Another way to call the range adaptor using '|': create a keys_view from each pair
for (int years : windows | std::views::values)
{
std::cout << years << ' '; // 1985 1987 1990 1992 ...
}
}
2003 2011 2014 2017 1988 2020
1985 1987 1990 1992 1993 1995 1996 1995 1998 1985 2000
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
Nilai hasil
Tampilan yang mendasar.
begin
Dapatkan iterator ke elemen pertama di values_view.
// returns a non-const iterator
1) constexpr auto begin() requires (!Simple_view<V>);
// returns a const iterator
2) constexpr auto begin() const requires ranges::range<const V>;
Parameter
Tidak ada.
Nilai hasil
Iterator yang menunjuk pada elemen pertama di values_view.
end
Dapatkan sentinel di akhir values_view
1) constexpr auto end() requires (!Simple_view<V> && !ranges::common_range<V>);
2) constexpr auto end() requires (!Simple_view<V> && ranges::common_range<V>);
3) constexpr auto end() const requires ranges::range<const V>;
4) constexpr auto end() const requires ranges::common_range<const V>;
Parameter
Tidak ada.
Nilai hasil
Sentinel yang mengikuti elemen terakhir dalam values_view
size
Dapatkan jumlah elemen.
constexpr auto size() requires sized_range<V>
constexpr auto size() const requires sized_range<const V>
Parameter
Tidak ada.
Nilai hasil
Jumlah elemen dalam values_view.
Keterangan
Ukuran tampilan hanya tersedia jika rentang yang mendasar adalah sized_range, atau dengan kata lain, terikat.