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ğere ilk dizin üzerinden bir görünüm. Örneğin, bir aralığı std::tuple<string, int>göz önünde bulundurulduğunda, her bir tanımlama grubundaki string tüm öğeleri içeren bir görünüm oluşturun.
keys_viewiçin bir diğer addır elements_view<R, 0> ve veya std::mapgibi std::unordered_map ilişkilendirici kapsayıcılardan anahtarların görünümünü oluşturmak için yararlıdır.
Sözdizimi
template<input_range R>
using keys_view = ranges::elements_view<R, 0>;
Ş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
| Karakteristik | Açıklama |
|---|---|
| Aralık bağdaştırıcısı | views::keys |
| Temel alınan aralık | Veya üzerini karşılaması input_range gerekir |
| Öğe türü | Temel alınan aralığın ilk tanımlama grubu öğesinin türüyle aynı |
| Yineleyici kategoriyi görüntüleme |
random_access_range temel alınan aralık bitişikse, aksi takdirde temel alınan aralıkla aynı |
| 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
Aşağıdaki üye işlevleri listesi sınıfına başvurur keys_view . Bunun bir sınıf şablonu örneği oluşturma için diğer element_view ad olduğunu hatırlayın.
| Üye işlevleri | Açıklama |
|---|---|
| OluşturucularC++20 | oluşturma keys_view. |
base
C++20 |
Temel alınan aralığı alın. |
begin
C++20 |
İlk öğeye bir yineleyici alın. |
end
C++20 |
Görünümün sonunda sentinel'i alın. |
size
C++20 |
Öğe sayısını alın. Temel alınan aralığın karşılaması sized_rangegerekir. |
Devralınan view_interface |
Açıklama |
back
C++20 |
Son öğeyi alın. |
empty
C++20 |
öğesinin keys_view boş olup olmadığını test edin. |
front
C++20 |
İlk öğeyi alın. |
operator[]
C++20 |
Öğesini belirtilen konumda alın. |
operator bool
C++20 |
öğesinin keys_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 keys_view kullanabileceğiniz tanımlama grubu benzeri türler , std::tupleve std::pair'lerdirstd::array.
Oluşturucular
bir örneğini keys_viewoluşturun.
1) constexpr keys_view(V base);
2) keys_view() requires std::default_initializable<V> = default;
Parametreler
base
Temel alınan aralık.
Şablon parametre türü hakkında bilgi için bkz . Şablon parametreleri.
Dönüş değeri
Bir keys_view örnek.
Açıklamalar
Oluşturmanın keys_view en iyi yolu, aralık bağdaştırıcısını keys 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.
1) Belirtilen görünümden bir keys_view oluşturun.
2) Varsayılan oluşturucu boş keys_viewbir oluşturur.
Örnek: keys_view
// requires /std:c++20 or later
#include <ranges>
#include <iostream>
#include <map>
#include <vector>
#include <string>
#include <utility>
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 keys from the map
for (const std::string& standards : std::views::keys(cpp_standards))
{
std::cout << standards << ' '; // C++03 C++11 C++14 C++17 C++98 C++20
}
std::cout << '\n';
// ========== work with a range of 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 an keys_view from each pair
for (const std::string& version : windows | std::views::keys)
{
std::cout << version << ' '; // Windows 1.0 Windows 2.0 Windows 3.0 ...
}
}
C++03 C++11 C++14 C++17 C++98 c++20
Windows 1.0 Windows 2.0 Windows 3.0 Windows 3.1 Windows NT 3.1 Windows 95 Windows NT 4.0 Windows 95 Windows 98 Windows 1.0 Windows 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 keys_viewbir yineleyici alın.
1) constexpr auto begin() requires (!Simple_view<V>);
2) constexpr auto begin() const requires (Simple_view<V>) // or put another way, requires ranges::range<const V>;
Parametreler
Hiçbiri.
Dönüş değeri
içindeki ilk öğeye keys_viewişaret eden bir yineleyici.
end
Sentinel'i keys_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 keys_viewizleyen sentinel:
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 keys_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.