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 aralık aralığının öğelerini tek bir görünümde birleştirir.
Sözdizimi
template<input_range R> requires view<R> && input_range<range_reference_t<R>> &&
(is_reference_v<range_reference_t<R>> || view<range_value_t<R>>)
class join_view : public view_interface<join_view<R>>;
Şablon parametreleri
R
Temel alınan aralığın türü. Veya üzerini karşılamalıdır 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::join |
| Temel alınan aralık | Veya üzerini karşılaması input_range gerekir |
| Öğe türü | Temel alınan aralıkla aynı |
| Yineleyici kategoriyi görüntüleme | input_rangebidirectional_range yinelenen temel aralığa bağlı olarak |
| Boyutlu | Hayır |
- constyinelenebilir |
Yalnızca temel alınan aralık const yinelenebilirse |
| Ortak aralık | Yalnızca temel alınan aralık karşılanırsa common_range |
| Ödünç alınan aralık | Hayır |
Üyeler
| Üye işlevleri | Açıklama |
|---|---|
| OluşturucularC++20 | oluşturma join_view. |
baseC++20 |
Temel alınan aralığa bir başvuru alın. |
beginC++20 |
İlk öğeye bir yineleyici alın. |
endC++20 |
Görünümün sonunda sentinel'i alın. |
Devralınan view_interface |
Açıklama |
backC++20 |
Son öğeyi alın. |
emptyC++20 |
Görünümün boş olup olmadığını test edin. |
frontC++20 |
İlk öğeyi alın. |
operator boolC++20 |
Görünümün boş olup olmadığını test edin. |
Açıklamalar
Oluşturmanın join_view en iyi yolu, aralık bağdaştırıcısını views::join kullanmaktır. Aralık bağdaştırıcıları, görünüm sınıflarına erişmenin 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.
Bu görünüm, birden çok aralığı tek bir görünümde birleştirmek istediğinizde kullanışlıdır.
Gereksinimler
Üst bilgi: <ranges> (C++20'den beri)
Ad alanı: std::ranges
Derleyici Seçeneği: /std:c++20 veya üzeri gereklidir.
Oluşturucular
Bir join_view örneği oluşturun.
1) join_view() = default;
2) constexpr explicit join_view(R base)
Parametreler
base
Temel alınan aralık.
Şablon parametre türü hakkında bilgi için bkz . Şablon parametreleri.
Açıklamalar
1) Varsayılan olarak bir join_viewoluşturur.
2) 'den baseöğesini join_view oluşturur.
Örnek: join_view
// requires /std:c++20 or later
#include <iostream>
#include <vector>
#include <ranges>
int main()
{
std::vector<int> rg1{1, 2, 3, 4};
std::vector<int> rg2{5, 6, 7};
std::vector<int> rg3{8, 9, 10, 11, 12, 13};
std::vector<int> rangeOfRanges[] {rg1, rg2, rg3};
auto jv = std::ranges::join_view(rangeOfRanges);
for (auto& e : jv)
{
std::cout << e << " ";
}
}
1 2 3 4 5 6 7 8 9 10 11 12 13
base
Temel alınan görünümü alın.
// Uses a copy constructor to return the underlying view
1) constexpr V base() const& requires std::copy_constructible<V>;
// Uses a move constructor to return the underlying view
2) constexpr V base() &&;
Parametreler
Hiçbiri.
Dönüş değeri
- Döndürülen görünüm kopya oluşturulur.
- Döndürülen görünüm, move oluşturulur.
begin
Görünümdeki ilk öğeye bir yineleyici alın.
constexpr auto begin();
constexpr auto begin() const
requires ranges::input_range<const V> && std::is_reference_v<ranges::range_reference_t<const V>>;
Parametreler
Hiçbiri.
Dönüş değeri
Görünümdeki ilk öğeye işaret eden bir yineleyici:
end
Görünümün sonunda sentinel'i alın.
constexpr sentinel_t<R> end();
constexpr auto end() const requires range<const R>
Parametreler
Hiçbiri.
Dönüş değeri
Görünümdeki son öğeyi izleyen sentinel: