Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bir koleksiyondaki her tanımlama grubu benzeri değerde ikinci dizinden oluşan bir görünüm. Örneğin, bir değer aralığı std::tuple<string, int> göz önünde bulundurulduğunda, her bir tanımlama grubundaki int tüm öğelerden oluşan bir görünüm oluşturun.
values_view için bir diğer addır elements_view<R, 1> ve gibi std::unordered_mapilişkilendirici kapsayıcılardaki değerlerin görünümünü oluşturmak için kullanışlıdır.
Sözdizimi
template<input_range R>
using values_view = ranges::elements_view<R, 1>;
Şablon parametreleri
R
Temel alınan aralığın türü. Bu tür karşılamalıdır ranges::input_range.
Özellikleri görüntüleme
Aşağıdaki girdilerin açıklaması için bkz . Sınıf özelliklerini görüntüleme
| Characteristic | Açıklama |
|---|---|
| Aralık bağdaştırıcısı | views::values |
| Temel alınan aralık | Veya üzerini karşılaması forward_range gerekir |
| Öğe türü | İkinci tanımlama grubu öğesinin türüyle aynı |
| Yineleyici kategoriyi görüntüleme | forward_range, bidirectional_range veya random_access_range |
| Boyutlu | Yalnızca temel alınan aralık karşılanırsa sized_range |
- constyinelenebilir |
Yalnızca temel alınan aralık karşılanırsa const-iterable |
| Ortak aralık | Yalnızca temel alınan aralık karşılanırsa common_range |
| Ödünç alınan aralık | Yalnızca temel alınan aralık karşılanırsa borrowed_range |
Üyeler
| Üye işlevleri | Açıklama |
|---|---|
| OluşturucularC++20 | oluşturma values_view. |
baseC++20 |
Temel alınan aralığı alın. |
beginC++20 |
İlk öğeye bir yineleyici alın. |
endC++20 |
sentinel'i öğesinin sonunda alın values_view. |
sizeC++20 |
Öğe sayısını alın. |
Devralınan view_interface |
Açıklama |
backC++20 |
Son öğeyi alın. |
emptyC++20 |
öğesinin values_view boş olup olmadığını test edin. |
frontC++20 |
İlk öğeyi alın. |
operator[]C++20 |
Öğesini belirtilen konumda alın. |
operator boolC++20 |
öğesinin values_view boş olup olmadığını test edin. |
Gereksinimler
Üst bilgi: <ranges> (C++20'den beri)
Ad alanı: std::ranges
Derleyici Seçeneği: /std:c++20 veya üzeri gereklidir.
Açıklamalar
Birlikte values_view kullanabileceğiniz tanımlama grubu benzeri türler , ve std::arrayşeklindedirstd::tuplestd::pair.
Oluşturucular
bir örneğini values_viewoluşturun.
1) constexpr values_view(R base);
2) values_view() requires default_initializable<V> = default;
Parametreler
base
Tanımlama grubu benzeri türlerin temel aralığı.
Şablon parametre türü hakkında bilgi için bkz . Şablon parametreleri.
Dönüş değeri
Bir values_view örnek.
Açıklamalar
Oluşturmanın values_view en iyi yolu, aralık bağdaştırıcısını values kullanmaktır. Aralık bağdaştırıcıları, görünüm sınıfları oluşturmanın amaçlanan yoludur. Kendi özel görünüm türünüzü oluşturmak istemeniz durumunda görünüm türleri kullanıma sunulur.
- Belirtilen görünümden bir
values_viewoluşturun. - Varsayılan oluşturucu, varsayılan olarak oluşturulan
values_viewbir oluşturur.
Örnek: 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
Temel alınan görünümün bir kopyasını alır.
// 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() &&;
Parametreler
Hiçbiri
Dönüş değeri
Temel alınan görünüm.
begin
içindeki ilk öğeye values_viewbir yineleyici alın.
// 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>;
Parametreler
Hiçbiri.
Dönüş değeri
içindeki ilk öğeye values_viewişaret eden bir yineleyici.
end
Sentinel'i 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>;
Parametreler
Hiçbiri.
Dönüş değeri
içindeki son öğeyi izleyen sentinel values_view
size
Öğe sayısını alın.
constexpr auto size() requires sized_range<V>
constexpr auto size() const requires sized_range<const V>
Parametreler
Hiçbiri.
Dönüş değeri
içindeki values_viewöğe sayısı.
Açıklamalar
Görünümün boyutu yalnızca temel alınan aralık bir ise veya başka bir sized_rangedeyişle sınırlanmışsa kullanılabilir.