<iterator>

Önceden tanımlanmış yineleyicileri ve akış yineleyicilerini, yineleyici temel öğelerini ve destekleyici şablonları tanımlar.

Gereksinimler

Üstbilgi: <iterator>

Ad alanı: std

Açıklamalar

Yineleyiciler, bir C++ programının farklı veri yapılarıyla tekdüzen bir şekilde çalışmasını sağlayan işaretçilerin genelleştirilmesidir. Algoritmalar, belirli veri türleri üzerinde çalışmak yerine bir tür yineleyici tarafından belirtilen değer aralığı üzerinde çalışır. Algoritmalar, yineleyicinin gereksinimlerini karşılayan herhangi bir veri yapısı üzerinde çalışabilir.

C++20'de altı yineleyici kategorisi vardır. Yineleyiciler bir yetenek hiyerarşisi içinde düzenlenir. Özellikleri C++20 kavramları tarafından belirtilir. Çeşitli yineleyicilerin ve bunların özelliklerinin açıklaması için bkz . Yineleyici kavramları

Visual Studio, işaretli ve işaretsiz yineleyicilerde hata ayıklamayı desteklemek için C++ Standart Kitaplığı yineleyicilerine uzantılar ekledi. Daha fazla bilgi için bkz . Güvenli Kitaplıklar: C++ Standart Kitaplığı.

Üyeler

İşlevler

Veri Akışı Adı Açıklama
advance Belirtilen bir konum sayısıyla yineleyiciyi artırır.
back_inserter Belirtilen kapsayıcının arkasında öğeler ekleyebilen bir yineleyici oluşturur.
begin Belirtilen bir kapsayıcıdaki ilk öğe için bir yineleyici alır.
cbegin Belirtilen kapsayıcıdaki ilk öğeye salt okunur bir yineleyici alır.
cend Belirtilen kapsayıcıdaki son öğeyi izleyen öğeye salt okunur bir yineleyici alır.
crbegin Belirtilen kapsayıcının başına ters salt okunur bir yineleyici alın.
crend Dönüşlerin sonunda sentinel'i crbegin() alın.
data Belirtilen kapsayıcıdaki ilk öğeye bir işaretçi alın.
distance İki yineleyici tarafından ele alınan konumlar arasındaki artış sayısını belirler.
end Belirtilen kapsayıcıdaki son öğeyi izleyen öğeye bir yineleyici alır.
empty Belirtilen kapsayıcının boş olup olmadığını test edin.
front_inserter Belirtilen kapsayıcının önünde öğeler ekleyebilen bir yineleyici oluşturur.
inserter Bir kapsayıcıya belirli bir ekleme noktasında yeni bir öğe ekleyen bir yineleyici bağdaştırıcısı.
make_checked_array_iterator Diğer algoritmalar tarafından kullanılabilecek bir checked_array_iterator oluşturur. Not: Bu işlev, C++ Standart Kitaplığı'nın Bir Microsoft uzantısıdır. Bu işlev kullanılarak uygulanan kod, bu Microsoft uzantısını desteklemeyen C++ Standart derleme ortamlarına taşınabilir değildir.
make_move_iterator Sağlanan yineleyiciyi depolanmış temel yineleyicisi olarak içeren bir taşıma yineleyicisi döndürür.
make_unchecked_array_iterator Diğer algoritmalar tarafından kullanılabilecek bir unchecked_array_iterator oluşturur. Not: Bu işlev, C++ Standart Kitaplığı'nın Bir Microsoft uzantısıdır. Bu işlev kullanılarak uygulanan kod, bu Microsoft uzantısını desteklemeyen C++ Standart derleme ortamlarına taşınabilir değildir.
next Belirtilen sayıda yineler ve yeni yineleyici konumunu döndürür.
prev Belirtilen sayıda geri yineler ve yeni yineleyici konumunu döndürür.
rbegin Belirtilen kapsayıcının başına ters yineleyici alın.
rend Belirtilen kapsayıcının sonunda sentinel için ters yineleyici alın.
size Öğe sayısını alın.

İşleçler

Veri Akışı Adı Açıklama
operator!= İşlecin sol tarafındaki yineleyici nesnesinin sağ taraftaki yineleyici nesnesine eşit olup olmadığını test eder.
operator== İşlecin sol tarafındaki yineleyici nesnesinin işlecin sağ tarafındaki yineleyici nesnesine eşit olup olmadığını sınar.
operator< İşlecin sol tarafındaki yineleyici nesnesinin işlecin sağ tarafındaki yineleyici nesnesinden küçük olup olmadığını sınar.
operator<= İşlecin sol tarafındaki yineleyici nesnesinin işlecin sağ tarafındaki yineleyici nesnesine eşit veya ondan küçük olup olmadığını sınar.
operator> İşlecin sol tarafındaki yineleyici nesnesinin işlecin sağ tarafındaki yineleyici nesnesinden büyük olup olmadığını sınar.
operator>= İşlecin sol tarafındaki yineleyici nesnesinin işlecin sağ tarafındaki yineleyici nesnesine eşit veya ondan büyük olup olmadığını sınar.
operator+ Yineleyiciye bir uzaklık ekler ve eklenen öğeyi yeni reverse_iterator uzaklık konumunda adresleyen yeni öğesini döndürür.
operator- Bir yineleyiciyi bir başkasından çıkarır ve farkı döndürür.

Sınıflar

Veri Akışı Adı Açıklama
back_insert_iterator Sınıf şablonu bir çıkış yineleyici nesnesi açıklar. Öğeleri türündeki Containerbir kapsayıcıya ekler ve kapsayıcı olarak adlandırılan depoladığı korumalı pointer nesne üzerinden erişir.
bidirectional_iterator_tag Çift yönlü yineleyiciyi temsil eden bir iterator_category işlev için dönüş türü sağlayan sınıf.
checked_array_iterator Bir rastgele erişim, denetlenmiş yineleyici kullanarak bir diziye erişen sınıf. Not: Bu sınıf, C++ Standart Kitaplığı'nın bir Microsoft uzantısıdır. Bu işlev kullanılarak uygulanan kod, bu Microsoft uzantısını desteklemeyen C++ Standart derleme ortamlarına taşınabilir değildir.
forward_iterator_tag İleri yineleyiciyi temsil eden bir iterator_category işlev için dönüş türü sağlayan sınıf.
front_insert_iterator Sınıf şablonu bir çıkış yineleyici nesnesi açıklar. Öğeleri türündeki Containerbir kapsayıcıya ekler ve kapsayıcı olarak adlandırılan depoladığı korumalı pointer nesne üzerinden erişir.
input_iterator_tag Giriş yineleyicisini temsil eden bir iterator_category işlev için dönüş türü sağlayan sınıf.
insert_iterator Sınıf şablonu bir çıkış yineleyici nesnesi açıklar. Öğeleri türündeki Containerbir kapsayıcıya ekler ve kapsayıcı olarak adlandırılan depoladığı korumalı pointer nesne üzerinden erişir. Ayrıca adlı itersınıfının Container::iteratorkorumalı iterator nesnesini de depolar.
istream_iterator Sınıf şablonu bir giriş yineleyici nesnesi açıklar. Sınıfın Ty nesnelerini depoladığı bir nesne aracılığıyla eriştiği bir giriş akışından, işaretçi türündeki öğesinden basic_istream<Elem, Tr>ayıklar.
istreambuf_iterator Sınıf şablonu bir giriş yineleyici nesnesi açıklar. Sınıfın Elem öğelerini depoladığı bir nesne pointer aracılığıyla eriştiği bir çıkış akışı arabelleğine basic_streambuf<Elem, Tr>ekler.
iterator Sınıf şablonu, tüm yineleyiciler için temel tür olarak kullanılır.
iterator_traits Aynı şekilde başvurulabilsinler diye farklı yineleyici türleriyle ilişkilendirilen kritik türleri sağlayan şablon yardımcı sınıfı.
move_iterator Nesne move_iterator türündeki RandomIteratorrastgele erişim yineleyicisini depolar. Başvurunun kaldırıldığı durum dışında, rastgele erişimli yineleyici gibi davranır. sonucuoperator*, bir yapmak rvalue referenceiçin örtük olarak öğesine value_type&&: atılır.
ostream_iterator Sınıf şablonu bir çıkış yineleyici nesnesi açıklar. Sınıfın Type nesnelerini depoladığı bir nesne pointer aracılığıyla eriştiği bir çıkış akışına basic_ostream<Elem, Tr>ekler.
ostreambuf_iterator Sınıf şablonu bir çıkış yineleyici nesnesi açıklar. Sınıfın Elem öğelerini, depoladığı bir nesne aracılığıyla eriştiği bir çıkış akışı arabelleğine, işaretçi türündeki öğesine basic_streambuf<Elem, Tr>ekler.
output_iterator_tag Çıkış yineleyicisini temsil eden işlev için iterator_category bir dönüş türü sağlayan sınıf.
random_access_iterator_tag Rastgele erişim yineleyicisini temsil eden işlev için iterator_category bir dönüş türü sağlayan sınıf.
reverse_iterator Sınıf şablonu, rastgele erişim yineleyicisi gibi davranan bir nesneyi yalnızca tersten açıklar.
unchecked_array_iterator Bir rastgele erişim, denetlenmemiş yineleyici kullanarak bir diziye erişen sınıf. Not: Bu sınıf, C++ Standart Kitaplığı'nın bir Microsoft uzantısıdır. Bu işlev kullanılarak uygulanan kod, bu Microsoft uzantısını desteklemeyen C++ Standart derleme ortamlarına taşınabilir değildir.

Kavramlar

Aşağıdaki kavramlar ad alanında std tanımlanır. Yineleyicilere uygulanır ve kavramlarda <ranges>açıklanan aralıklar için yineleyici kategorileriyle de ilişkilidir.

Yineleyici kavramı Açıklama
bidirectional_iteratorC++20 Hem ileri hem de geri okuyabilen ve yazabilen bir yineleyici belirtir.
contiguous_iteratorC++20 Öğeleri bellekte sıralı, aynı boyutta olan ve işaretçi aritmetiği kullanılarak erişilebilen bir yineleyici belirtir.
forward_iteratorC++20 Birden çok kez okuyabilen (ve büyük olasılıkla yazabilen) bir yineleyici belirtir.
input_iteratorC++20 En az bir kez okuyabileceğiniz bir yineleyici belirtir.
input_or_output_iteratorC++20 Yineleyici kavramı taksonomisinin temeli.
output_iterator Yazabileceğiniz bir yineleyici belirtir.
random_access_iteratorC++20 Dizine göre okuyabileceğiniz ve yazabileceğiniz bir yineleyici belirtir.
sentinel_forC++20 Yineleyici türü için bir sentinel belirtir.
sized_sentinel_forC++20 Bir yineleyicinin ve sentinel değerinin, sabit süredeki farklarını bulmak için çıkarılabildiğini (kullanılarak -) belirtir.

Ayrıca bkz.

Üst Bilgi Dosyaları Başvurusu
C++ Standart Kitaplığında İş Parçacığı Güvenliği
C++ Standart Kitaplığı Başvurusu