Aracılığıyla paylaş


forward_list Sınıfı

Değişen uzunluktaki öğe dizisini denetleen bir nesneyi açıklar. Sıra, her biri türünde Typebir üye içeren tek bağlantılı bir düğüm listesi olarak depolanır.

Sözdizimi

template <class Type,
    class Allocator = allocator<Type>>
class forward_list

Parametreler

Tür*
forward_list depolanacak öğe veri türü.

Ayırıcı
Belleğin forward_list ayırması ve serbest bırakılması hakkındaki ayrıntıları kapsülleyen depolanmış ayırıcı nesnesi. Bu parametre isteğe bağlıdır. Varsayılan değer ayırıcıdır<Type>.

Açıklamalar

Bir forward_list nesne, ayırıcı Sınıfını (yaygın olarak olarak bilinirstd::allocator)) temel alan bir sınıf Ayırıcısı saklı nesnesi aracılığıyla denetlediği sıra için depolama ayırır ve serbesttir. Daha fazla bilgi için bkz . Ayırıcılar. Ayırıcı nesnesinin türündeki allocatorbir nesneyle aynı dış arabirime sahip olması gerekir.

Not

Kapsayıcı nesnesi atandığında depolanan ayırıcı nesnesi kopyalanmaz.

Yineleyiciler, işaretçiler ve başvurular, denetlenen dizilerinin öğeleri aracılığıyla forward_listsilindiğinde geçersiz hale gelebilir. Aracılığıyla denetlenen dizide forward_list gerçekleştirilen eklemeler ve splices yineleyicileri geçersiz kılmaz.

Denetimli diziye eklemeler, oluşturucuyu Type(const T&)çağıran tek üye işlevi olan forward_list::insert_after çağrıları tarafından gerçekleşebilir. forward_list taşıma oluşturucularını da çağırabilir. Böyle bir ifade özel durum oluşturursa kapsayıcı nesnesi yeni öğe eklemez ve özel durumu yeniden oluşturur. Bu nedenle, türdeki forward_list bir nesne, bu tür özel durumlar oluştuğunda bilinen bir durumda bırakılır.

Üyeler

Oluşturucular

Veri Akışı Adı Açıklama
forward_list türünde forward_listbir nesnesi oluşturur.

Tür tanımları

Veri Akışı Adı Açıklama
allocator_type İleriye doğru liste nesnesi için ayırıcı sınıfını temsil eden bir tür.
const_iterator İleriye doğru liste için sabit yineleyici sağlayan bir tür.
const_pointer İleri listedeki bir const öğeye işaretçi sağlayan tür.
const_reference İleri listesindeki bir öğeye sabit başvuru sağlayan bir tür.
difference_type Yineleyiciler tarafından işaret edilen öğeler arasındaki bir aralıktaki ileriye doğru liste öğelerinin sayısını göstermek için kullanılabilecek imzalı bir tamsayı türü.
Yineleyici İleriye doğru liste için yineleyici sağlayan bir tür.
Işaretçi İleri listedeki bir öğeye işaretçi sağlayan tür.
referans İleri listedeki bir öğeye başvuru sağlayan tür.
size_type İki öğe arasındaki işaretsiz uzaklığı temsil eden bir tür.
value_type bir ileri listede depolanan öğenin türünü temsil eden bir tür.

İşlevler

Veri Akışı Adı Açıklama
atamak bir ileri listeden öğeleri siler ve yeni bir öğe kümesini hedef ileriye doğru listeye kopyalar.
before_begin İleri listedeki ilk öğeden önceki konumu ele alan bir yineleyici döndürür.
başlamak bir ileri listedeki ilk öğeyi ele alan bir yineleyici döndürür.
cbefore_begin İleri listedeki ilk öğeden önceki konumu ele alan bir sabit yineleyici döndürür.
cbegin bir ileri listedeki ilk öğeyi ele alan bir sabit yineleyici döndürür.
cend bir ileri listedeki son öğeyi başaran konumu ele alan bir sabit yineleyici döndürür.
berrak İleriye doğru listenin tüm öğelerini siler.
emplace_after Move, belirtilen konumdan sonra yeni bir öğe oluşturur.
emplace_front Listenin başına yerinde bir öğe ekler.
empty İleriye doğru bir listenin boş olup olmadığını sınar.
son bir ileri listedeki son öğeden sonra gelen konumu ele alan bir yineleyici döndürür.
erase_after Belirtilen konumdan sonra ileri listeden öğeleri kaldırır.
ön bir ileri listedeki ilk öğeye başvuru döndürür.
get_allocator İleriye doğru liste oluşturmak için kullanılan ayırıcı nesnesinin bir kopyasını döndürür.
insert_after Belirtilen konumdan sonra ileriye doğru listeye öğe ekler.
max_size bir ileriye doğru listenin uzunluk üst sınırını döndürür.
birleşmek Öğeleri bağımsız değişken listesinden kaldırır, hedef ileriye doğru listesine ekler ve yeni, birleşik öğe kümesini artan düzende veya belirtilen başka bir sırada sıralar.
pop_front İleriye doğru listenin başındaki öğesini siler.
push_front İleriye doğru listenin başına bir öğe ekler.
remove belirtilen değerle eşleşen ileriye doğru bir listedeki öğeleri siler.
remove_if Belirtilen koşulun karşılandığı ileriye doğru bir listeden öğeleri siler.
Yeni -den boyutlandırmak İleriye doğru liste için yeni bir boyut belirtir.
ters çevir Öğelerin ileriye doğru bir listede yer alma sırasını tersine çevirir.
sıralayın Öğeleri artan düzende veya bir koşul tarafından belirtilen bir düzende düzenler.
splice_after Düğümler arasındaki bağlantıları yeniden bağlar.
değiş tokuş etmek İki iletme listesinin öğelerini değiştirir.
unique Belirtilen testi geçen bitişik öğeleri kaldırır.

İşleçler

Veri Akışı Adı Açıklama
operator= İleriye doğru listenin öğelerini başka bir ileriye doğru listenin kopyasıyla değiştirir.

allocator_type

İleriye doğru liste nesnesi için ayırıcı sınıfını temsil eden bir tür.

typedef Allocator allocator_type;

Açıklamalar

allocator_type , Ayırıcı şablon parametresinin eş anlamlısıdır.

atamak

bir ileri listeden öğeleri siler ve yeni bir öğe kümesini hedef ileriye doğru listeye kopyalar.

void assign(
    size_type Count,
    const Type& Val);

void assign(
    initializer_list<Type> IList);

template <class InputIterator>
void assign(InputIterator First, InputIterator Last);

Parametreler

birinci
Değiştirme aralığının başlangıcı.

son
Değiştirme aralığının sonu.

count
Atanacak öğe sayısı.

Val
Her öğeye atanacak değer.

Tür
Değerin türü.

IList
Kopyalanacak initializer_list.

Açıklamalar

forward_list tamsayı türündeyse, ilk üye işlevi ile assign((size_type)First, (Type)Last)aynı şekilde davranır. Aksi takdirde, ilk üye işlevi tarafından *this denetlenen sırayı [ First, Last)dizisiyle değiştirir ve ilk denetlenen diziyle çakışmamalıdır.

İkinci üye işlevi tarafından *this denetlenen sırayı değerinin Valöğelerinin tekrarı Count ile değiştirir.

Üçüncü üye işlevi, initializer_list öğelerini forward_list kopyalar.

before_begin

İleri listedeki ilk öğeden önceki konumu ele alan bir yineleyici döndürür.

const_iterator before_begin() const;
iterator before_begin();

Dönüş Değeri

Dizinin ilk öğesinin hemen önüne (veya boş bir dizinin bitiminin hemen öncesine) işaret eden ileriye doğru yineleyici.

Açıklamalar

başlamak

bir ileri listedeki ilk öğeyi ele alan bir yineleyici döndürür.

const_iterator begin() const;
iterator begin();

Dönüş Değeri

Dizinin ilk öğesine (veya boş bir dizinin sonunun hemen ötesine) işaret eden ileriye doğru yineleyici.

Açıklamalar

cbefore_begin

İleri listedeki ilk öğeden önceki konumu ele alan bir sabit yineleyici döndürür.

const_iterator cbefore_begin() const;

Dönüş Değeri

Dizinin ilk öğesinin hemen önüne (veya boş bir dizinin bitiminin hemen öncesine) işaret eden ileriye doğru yineleyici.

Açıklamalar

cbegin

Aralıktaki ilk öğeyi ele alan bir const yineleyici döndürür.

const_iterator cbegin() const;

Dönüş Değeri

Aralığın const ilk öğesini veya boş aralığın sonunun hemen ötesindeki konumu gösteren ileri erişim yineleyicisi (boş aralık için). cbegin() == cend()

Açıklamalar

değerinin cbegindönüş değeriyle, aralıktaki öğeler değiştirilemez.

Dönüş değerinin olduğunu const_iteratorgaranti etmek için üye işlevinin begin() yerine bu üye işlevini kullanabilirsiniz. Genellikle, aşağıdaki örnekte gösterildiği gibi otomatik tür kesinti anahtar sözcüğüyle birlikte kullanılır. Örnekte, ve cbegin()destekleyen herhangi bir türde begin() değiştirilebilir (non- const) kapsayıcısı olduğunu düşününContainer.

auto i1 = Container.begin();
// i1 is Container<T>::iterator
auto i2 = Container.cbegin();
// i2 is Container<T>::const_iterator

cend

Bir const aralıktaki son öğenin hemen ötesindeki konumu ele alan bir yineleyici döndürür.

const_iterator cend() const;

Dönüş Değeri

Aralığının hemen sonunu gösteren bir ileriye doğru erişim yineleyicisi.

Açıklamalar

cend bir yineleyicinin aralığının sonunu geçip geçmediğini test etmek için kullanılır.

Dönüş değerinin olduğunu const_iteratorgaranti etmek için üye işlevinin end() yerine bu üye işlevini kullanabilirsiniz. Genellikle, aşağıdaki örnekte gösterildiği gibi otomatik tür kesinti anahtar sözcüğüyle birlikte kullanılır. Örnekte, ve cend()destekleyen herhangi bir türde end() değiştirilebilir (non- const) kapsayıcısı olduğunu düşününContainer.

auto i1 = Container.end();
// i1 is Container<T>::iterator
auto i2 = Container.cend();

// i2 is Container<T>::const_iterator

tarafından cend döndürülen değer başvurulmamalıdır.

berrak

İleriye doğru listenin tüm öğelerini siler.

void clear();

Açıklamalar

Bu üye işlevi çağırır erase_after(before_begin(), end()).

const_iterator

İleriye doğru liste için sabit yineleyici sağlayan bir tür.

typedef implementation-defined const_iterator;

Açıklamalar

const_iterator , denetlenen dizi için sabit ileri yineleyici olarak görev yapabilecek bir nesneyi açıklar. Burada uygulama tanımlı bir türün eş anlamlısı olarak açıklanmıştır.

const_pointer

İleri listedeki bir const öğeye işaretçi sağlayan tür.

typedef typename Allocator::const_pointer
    const_pointer;

Açıklamalar

const_reference

İleri listesindeki bir öğeye sabit başvuru sağlayan bir tür.

typedef typename Allocator::const_reference const_reference;

Açıklamalar

difference_type

Yineleyiciler tarafından işaret edilen öğeler arasındaki bir aralıktaki ileriye doğru liste öğelerinin sayısını göstermek için kullanılabilecek imzalı bir tamsayı türü.

typedef typename Allocator::difference_type difference_type;

Açıklamalar

difference_type , denetlenen dizideki iki öğeden herhangi birinin adresleri arasındaki farkı gösterebilen bir nesneyi açıklar.

emplace_after

Move, belirtilen konumdan sonra yeni bir öğe oluşturur.

template <class T>
iterator emplace_after(const_iterator Where, Type&& val);

Parametreler

Nerede
Hedef ileriye doğru listesinde yeni öğenin bulunduğu konum.

Val
Oluşturucu bağımsız değişkeni.

Dönüş Değeri

Yeni eklenen öğeyi belirten bir yineleyici.

Açıklamalar

Bu üye işlevi, denetimli dizide Where öğesinin işaret ettiği öğenin hemen arkasına oluşturucu bağımsız değişkenleriyle bir öğe ekler. Aksi takdirde davranışı forward_list::insert_after ile aynıdır.

emplace_front

Listenin başına yerinde bir öğe ekler.

template <class Type>
    void emplace_front(Type&& val);

Parametreler

Val
İleriye doğru listenin başına eklenen öğesi.

Açıklamalar

Bu üye işlevi, denetlenen sıranın sonuna oluşturucu bağımsız değişkenleriyle _ val bir öğe ekler.

Bir özel durum oluşturulursa kapsayıcı değiştirilmeden bırakılır ve özel durum yeniden oluşturulur.

empty

İleriye doğru bir listenin boş olup olmadığını sınar.

bool empty() const;

Dönüş Değeri

true İleriye doğru liste boşsa; aksi takdirde , false.

end

bir ileri listedeki son öğeden sonra gelen konumu ele alan bir yineleyici döndürür.

const_iterator end() const;
iterator end();

Dönüş Değeri

Sıranın sonunun hemen ötesine işaret eden ileriye doğru yineleyici.

erase_after

Belirtilen konumdan sonra ileri listeden öğeleri kaldırır.

iterator erase_after(const_iterator Where);
iterator erase_after(const_iterator first, const_iterator last);

Parametreler

Nerede
Hedef ileri listesindeki öğenin silindiği konum.

birinci
Silinecek aralığın başlangıcı.

son
Silinecek aralığın sonu.

Dönüş Değeri

Kaldırılan öğelerin ötesinde kalan ilk öğeyi belirten bir yineleyici veya böyle bir öğe yoksa forward_list::end .

Açıklamalar

İlk üye işlevi, denetlenen dizinin öğesini Where'un hemen ardından kaldırır.

İkinci üye işlevi, aralıktaki ( first, last) denetlenen dizinin öğelerini kaldırır (bitiş noktası dahil değildir).

Öğelerin silinmesi N yıkıcı çağrılarına neden olur N . Yeniden konumlandırma gerçekleşir, bu nedenle yineleyiciler ve başvurular silinen öğeler için geçersiz hale gelir.

Üye işlevleri hiçbir zaman özel durum oluşturmaz.

forward_list

türünde forward_listbir nesnesi oluşturur.

forward_list();
explicit forward_list(const Allocator& Al);
explicit forward_list(size_type Count);
forward_list(size_type Count, const Type& Val);
forward_list(size_type Count, const Type& Val, const Allocator& Al);
forward_list(const forward_list& Right);
forward_list(const forward_list& Right, const Allocator& Al);
forward_list(forward_list&& Right);
forward_list(forward_list&& Right, const Allocator& Al);
forward_list(initializer_list<Type> IList, const Alloc& Al);
template <class InputIterator>
forward_list(InputIterator First, InputIterator Last);
template <class InputIterator>
forward_list(InputIterator First, InputIterator Last, const Allocator& Al);

Parametreler

Al
Bu nesneyle kullanılacak kaynak ayırıcı sınıfı.

Sayı
Listede yer alan öğe sayısı.

Val
Listede bulunan öğelerin değeri.

Right
Oluşturulacak listenin kopya olacağı liste.

Birinci
Kopyalanacak öğe aralığındaki ilk öğenin konumu.

Son
Kopyalanacak öğe aralığının ötesindeki ilk öğenin konumu.

IList
Kopyalanacak initializer_list.

Açıklamalar

Tüm oluşturucular bir ayırıcı depolar ve denetlenen diziyi başlatır. Ayırıcı nesnesi varsa Al bağımsız değişkenidir. Kopya oluşturucu için ise olur right.get_allocator(). Aksi takdirde, olur Allocator().

İlk iki oluşturucu boş bir ilk denetimli dizi belirtir.

Üçüncü oluşturucu değerin Count öğelerinin tekrarını Type()belirtir.

Dördüncü ve beşinci oluşturucular, Değer Değerinin Count öğelerinin tekrarını belirtir.

Altıncı oluşturucu, Sağ tarafından denetlenen dizinin bir kopyasını belirtir. Bir tamsayı türündeyseInputIterator, sonraki iki oluşturucu değeri (Type)Lastöğelerinin tekrarını (size_type)First belirtir. Aksi takdirde, sonraki iki oluşturucu dizisini [First, Last)belirtir.

Dokuzuncu ve onuncu oluşturucular altıncı ile aynıdır, ancak rvalue başvurusuyla birlikte.

Son oluşturucu, sınıfının initializer_list<Type>bir nesnesiyle ilk denetlenen diziyi belirtir.

ön

bir ileri listedeki ilk öğeye başvuru döndürür.

reference front();
const_reference front() const;

Dönüş Değeri

Denetimli dizinin ilk öğesine yapılan ve boş olmayan bir başvuru.

get_allocator

İleriye doğru liste oluşturmak için kullanılan ayırıcı nesnesinin bir kopyasını döndürür.

allocator_type get_allocator() const;

Dönüş Değeri

Depolanan ayırıcı nesnesi.

insert_after

Belirtilen konumdan sonra ileriye doğru listeye öğe ekler.

iterator insert_after(const_iterator Where, const Type& Val);
void insert_after(const_iterator Where, size_type Count, const Type& Val);
void insert_after(const iterator Where, initializer_list<Type> IList);
iterator insert_after(const_iterator Where, Type&& Val);
template <class InputIterator>
    void insert_after(const_iterator Where, InputIterator First, InputIterator Last);

Parametreler

Nerede
Hedef ileriye doğru listesinde ilk öğenin eklendiği konum.

Sayı
Eklenecek öğe sayısı.

Birinci
Ekleme aralığının başlangıcı.

Son
Ekleme aralığının sonu.

Val
İleriye doğru listeye eklenen öğesi.

IList
Eklenecek initializer_list.

Dönüş Değeri

Yeni eklenen öğeyi belirten bir yineleyici (yalnızca ilk ve son üye işlevleri).

Açıklamalar

Üye işlevlerin her biri, denetlenen dizide Where tarafından işaret edilen öğeden hemen sonra, kalan işlenenler tarafından belirtilen bir dizi ekler.

İlk üye işlevi Val değerine sahip bir öğe ekler ve yeni eklenen öğeyi belirten bir yineleyici döndürür.

İkinci üye işlevi, Value Val öğesinin Count öğelerinin tekrarını ekler.

Tamsayı türündeyse InputIterator , üçüncü üye işlevi ile insert(it, (size_type)First, (Type)Last)aynı şekilde davranır. Aksi takdirde, ilk denetlenen diziyle [First, Last)çakışmaması gereken dizisini ekler.

Dördüncü üye işlevi, sınıfının initializer_list<Type>bir nesnesi tarafından belirtilen diziyi ekler.

Son üye işlevi ilk işlevle aynıdır, ancak rvalue başvurusuyla birlikte kullanılır.

Öğelerin eklenmesi N oluşturucu çağrılarına neden olur N . Yeniden konumlandırma gerçekleşir, ancak hiçbir yineleyici veya başvuru geçersiz olmaz.

Bir veya daha fazla öğe eklenirken bir özel durum oluşursa, kapsayıcı değiştirilmeden bırakılır ve özel durum yeniden oluşturulur.

iterator

İleriye doğru liste için yineleyici sağlayan bir tür.

typedef implementation-defined iterator;

Açıklamalar

iterator , denetlenen sıra için ileriye doğru yineleyici olarak görev yapabilecek bir nesneyi açıklar. Burada uygulama tanımlı bir türün eş anlamlısı olarak açıklanmıştır.

max_size

bir ileriye doğru listenin uzunluk üst sınırını döndürür.

size_type max_size() const;

Dönüş Değeri

Nesnenin denetleyebileceği en uzun sıranın uzunluğu.

Açıklamalar

birleşmek

İki sıralanmış diziyi doğrusal zamanda tek bir sıralanmış dizide birleştirir. Öğeleri bağımsız değişken listesinden kaldırır ve bu forward_listöğesine ekler. çağrısından önce iki liste aynı karşılaştırma işlevi nesnesine mergegöre sıralanmalıdır. Birleştirilmiş liste, bu karşılaştırma işlevi nesnesine göre sıralanır.

void merge(forward_list& right);
template <class Predicate>
    void merge(forward_list& right, Predicate comp);

Parametreler

Sağ
Birleştirilecek ileriye doğru liste.

Comp
Öğeleri sıralamak için kullanılan compare işlevi nesnesi.

Açıklamalar

forward_list::merge öğeleri öğesinden forward_list rightkaldırır ve bu forward_listöğesine ekler. Her iki sıra da aşağıda açıklanan aynı koşula göre sıralanmalıdır. Birleştirilmiş sıra, bu karşılaştırma işlevi nesnesi tarafından da sıralanır.

ve konumlarında i jyineleyiciler Pi ve Pj öğeleri belirleme için, ilk üye işlevi her zaman i < jsırayı !(*Pj < *Pi) uygular. (Öğeler sırayla sıralanırascending.) İkinci üye işlevi her zaman i < jsırayı ! comp(*Pj, *Pi) uygular.

Özgün denetimli dizideki hiçbir öğe çifti, sonuçta elde edilen denetimli dizide geri alınmaz. Elde edilen denetim dizisindeki bir öğe çifti eşittir ( !(*Pi < *Pj) && !(*Pj < *Pi)) karşılaştırırsa, tarafından denetlenen diziden bir öğeden önce özgün denetimli diziden rightbir öğe görüntülenir.

Bir özel durum yalnızca bir özel durum oluşturursa comp oluşur. Bu durumda, denetlenen sıra belirtilmeyen sırada bırakılır ve özel durum yeniden oluşturulur.

operator=

İleriye doğru listenin öğelerini başka bir ileriye doğru listenin kopyasıyla değiştirir.

forward_list& operator=(const forward_list& right);
forward_list& operator=(initializer_list<Type> IList);
forward_list& operator=(forward_list&& right);

Parametreler

Sağ
İleriye doğru listeye kopyalanan ileriye doğru liste.

IList
Türünde bir öğe Typedizisi gibi davranan ayraç içine alınmış başlatıcı listesi.

Açıklamalar

İlk üye işleci, denetlenen sırayı, sağ tarafından denetlenen sıranın bir kopyasıyla değiştirir.

İkinci üye işleci, sınıfındaki initializer_list<Type>bir nesnesinden denetlenen sıranın yerini alır.

Üçüncü üye işleci ilk işleçle aynıdır, ancak rvalue başvurusuna sahip olur.

pointer

İleri listedeki bir öğeye işaretçi sağlayan tür.

typedef typename Allocator::pointer pointer;

pop_front

İleriye doğru listenin başındaki öğesini siler.

void pop_front();

Açıklamalar

İleriye doğru listenin ilk öğesi boş olmamalıdır.

Üye işlevi hiçbir zaman özel durum oluşturmaz.

push_front

İleriye doğru listenin başına bir öğe ekler.

void push_front(const Type& val);
void push_front(Type&& val);

Parametreler

Val
İleriye doğru listenin başına eklenen öğesi.

Açıklamalar

Bir özel durum oluşturulursa kapsayıcı değiştirilmeden bırakılır ve özel durum yeniden oluşturulur.

reference

İleri listedeki bir öğeye başvuru sağlayan tür.

typedef typename Allocator::reference reference;

remove

belirtilen değerle eşleşen ileriye doğru bir listedeki öğeleri siler.

void remove(const Type& val);

Parametreler

Val
Bir öğe tarafından tutulursa bu öğenin listeden kaldırılmasına neden olan değer.

Açıklamalar

Üye işlevi, yineleyici P*P == valtarafından belirlenen tüm öğeleri denetimli diziden kaldırır.

Üye işlevi hiçbir zaman özel durum oluşturmaz.

remove_if

Belirtilen koşulun karşılandığı ileriye doğru bir listeden öğeleri siler.

template <class Predicate>
    void remove_if(Predicate pred);

Parametreler

Pred
Bir öğe tarafından karşılanırsa bu öğenin listeden silinmesine neden olan birli koşul.

Açıklamalar

Üye işlevi, yineleyici Ptarafından belirlenen ve doğru olan pred(*P) tüm öğeleri denetimli diziden kaldırır.

Özel durum, yalnızca önceden oluşturulmuş bir özel durum oluşturursa oluşur. Bu durumda, denetlenen sıra belirtilmeyen bir durumda bırakılır ve özel durum yeniden oluşturulur.

yeniden boyutlandırma

İleriye doğru liste için yeni bir boyut belirtir.

void resize(size_type _Newsize);
void resize(size_type _Newsize, const Type& val);

Parametreler

_Newsize
Yeniden boyutlandırılan ileriye doğru listesindeki öğelerin sayısı.

Val
Doldurma için kullanılacak değer.

Açıklamalar

Üye işlevlerinin her ikisi de listedeki öğe sayısının _Newsize olduğundan emin olun. Denetlenen sırayı daha uzun hale getirmesi gerekiyorsa, ilk üye işlevi değeri Type()olan öğeleri eklerken, ikinci üye işlevi değer değeri olan öğeleri ekler. Denetimli sırayı daha kısa hale getirmek için, her iki üye işlevi de etkin bir şekilde çağrısı yapar erase_after(begin() + _Newsize - 1, end()).

ters çevir

Öğelerin ileriye doğru bir listede yer alma sırasını tersine çevirir.

void reverse();

size_type

İki öğe arasındaki işaretsiz uzaklığı temsil eden bir tür.

typedef typename Allocator::size_type size_type;

Açıklamalar

İşaretsiz tamsayı türü, denetlenen herhangi bir dizinin uzunluğunu temsil eden bir nesneyi açıklar.

sıralayın

Öğeleri artan düzende veya bir koşul tarafından belirtilen bir düzende düzenler.

void sort();
template <class Predicate>
void sort(Predicate pred);

Parametreler

Pred
Sıralama koşulu.

Açıklamalar

Her iki üye işlevi de denetimli dizideki öğeleri aşağıda açıklanan bir koşula göre sıralar.

ve konumlarında i jyineleyiciler Pi ve Pj öğeleri belirleme için, ilk üye işlevi her zaman i < jsırayı !(*Pj < *Pi) uygular. (Öğeler sırayla sıralanırascending.) Üye şablonu işlevi her zaman i < jsiparişi ! pred(*Pj, *Pi) uygular. Özgün denetimli dizideki sıralı öğe çiftleri, sonuçta elde edilen denetimli dizide ters çevrilmiş değildir. (Sıralama kararlıdır.)

Özel durum, yalnızca önceden oluşturulmuş bir özel durum oluşturursa oluşur. Bu durumda, denetlenen sıra belirtilmeyen sırada bırakılır ve özel durum yeniden oluşturulur.

splice_after

Kaynak forward_list öğeleri kaldırır ve bir hedef forward_list ekler.

// insert the entire source forward_list
void splice_after(const_iterator Where, forward_list& Source);
void splice_after(const_iterator Where, forward_list&& Source);

// insert one element of the source forward_list
void splice_after(const_iterator Where, forward_list& Source, const_iterator Iter);
void splice_after(const_iterator Where, forward_list&& Source, const_iterator Iter);

// insert a range of elements from the source forward_list
void splice_after(
    const_iterator Where,
    forward_list& Source,
    const_iterator First,
    const_iterator Last);

void splice_after(
    const_iterator Where,
    forward_list&& Source,
    const_iterator First,
    const_iterator Last);

Parametreler

Nerede
Hedef forward_list sonra eklenecek konum.

Kaynak
Hedef forward_list eklenecek kaynak forward_list.

Iter
Kaynak forward_list eklenecek öğe.

Birinci
Kaynak forward_list eklenecek aralıktaki ilk öğe.

Son
Kaynak forward_list eklenecek aralığın ötesindeki ilk konum.

Açıklamalar

Üye işlevlerin ilk çifti, Denetimli dizideki öğenin Where tarafından işaret edilen hemen arkasına Source tarafından denetlenen diziyi ekler. Ayrıca Kaynak'tan tüm öğeleri kaldırır. (&Source eşit thisolmamalıdır.)

İkinci üye işlev çifti, Öğeyi Kaynak tarafından denetlenen dizideki Iter'in hemen sonrasında kaldırır ve where tarafından işaret edilen denetimli dizideki öğesinin hemen arkasına ekler. (Ise Where == Iter || Where == ++Iterhiçbir değişiklik olmaz.)

Üçüncü üye işlev çifti (aralıklı splice), Kaynak tarafından (First, Last) denetlenen diziden atanan alt aralığı, Denetimli dizideki öğenin Where tarafından işaret edilen hemen arkasına ekler. Ayrıca Özgün alt düzenlemeyi Source tarafından denetlenen diziden kaldırır. (If ise&Source == this, aralık (First, Last) Where tarafından işaret edilen öğeyi içermemelidir.)

Aralıklı splice öğeleri ve &Source != thiseklerseN, sınıf yineleyici nesnesinin sayısı artırılırN.

Spliced öğelerini belirten hiçbir yineleyici, işaretçi veya başvuru geçersiz olmaz.

Örnek

// forward_list_splice_after.cpp
// compile with: /EHsc /W4
#include <forward_list>
#include <iostream>

using namespace std;

template <typename S> void print(const S& s) {
    for (const auto& p : s) {
        cout << "(" << p << ") ";
    }

    cout << endl;
}

int main()
{
    forward_list<int> c1{ 10, 11 };
    forward_list<int> c2{ 20, 21, 22 };
    forward_list<int> c3{ 30, 31 };
    forward_list<int> c4{ 40, 41, 42, 43 };

    forward_list<int>::iterator where_iter;
    forward_list<int>::iterator first_iter;
    forward_list<int>::iterator last_iter;

    cout << "Beginning state of lists:" << endl;
    cout << "c1 = ";
    print(c1);
    cout << "c2 = ";
    print(c2);
    cout << "c3 = ";
    print(c3);
    cout << "c4 = ";
    print(c4);

    where_iter = c2.begin();
    ++where_iter; // start at second element
    c2.splice_after(where_iter, c1);
    cout << "After splicing c1 into c2:" << endl;
    cout << "c1 = ";
    print(c1);
    cout << "c2 = ";
    print(c2);

    first_iter = c3.begin();
    c2.splice_after(where_iter, c3, first_iter);
    cout << "After splicing the first element of c3 into c2:" << endl;
    cout << "c3 = ";
    print(c3);
    cout << "c2 = ";
    print(c2);

    first_iter = c4.begin();
    last_iter = c4.end();
    // set up to get the middle elements
    ++first_iter;
    c2.splice_after(where_iter, c4, first_iter, last_iter);
    cout << "After splicing a range of c4 into c2:" << endl;
    cout << "c4 = ";
    print(c4);
    cout << "c2 = ";
    print(c2);
}
Beginning state of lists:c1 = (10) (11)c2 = (20) (21) (22)c3 = (30) (31)c4 = (40) (41) (42) (43)After splicing c1 into c2:c1 =c2 = (20) (21) (10) (11) (22)After splicing the first element of c3 into c2:c3 = (30)c2 = (20) (21) (31) (10) (11) (22)After splicing a range of c4 into c2:c4 = (40) (41)c2 = (20) (21) (42) (43) (31) (10) (11) (22)

swap

İki iletme listesinin öğelerini değiştirir.

void swap(forward_list& right);

Parametreler

Sağ
Değiş tokuş edilecek öğeleri sağlayan ileriye doğru liste.

Açıklamalar

Üye işlevi, denetimli dizileri ile sağ arasında *this değiştirir. ise get_allocator() == right.get_allocator(), bunu sabit sürede yapar, hiçbir özel durum oluşturmaz ve denetlenen iki dizideki öğeleri atayan hiçbir başvuruyu, işaretçiyi veya yineleyiciyi geçersiz kılmaz. Aksi takdirde, öğe atamaları ve oluşturucu çağrıları denetimli iki dizideki öğe sayısıyla orantılı olarak gerçekleştirir.

unique

Birbirini izleyen her eşit öğe grubundan ilk öğe dışında tüm öğeleri ortadan kaldırır.

void unique();
template <class BinaryPredicate>
void unique(BinaryPredicate comp);

Parametreler

Comp
Ardışık öğeleri karşılaştırmak için kullanılan ikili koşul.

Açıklamalar

Her benzersiz öğenin ilkini tutar ve gerisini kaldırır. Öğeler, eşit değerdeki öğelerin listede bitişik olması için sıralanmalıdır.

İlk üye işlevi, önceki öğesine eşit olan her öğeyi denetimli diziden kaldırır. Ve konumlarında i jyineleyiciler Pi ve Pj öğeleri belirleme için, ikinci üye işlevi için her i + 1 == j && comp(*Pi, *Pj)öğeyi kaldırır.

Denetimli bir uzunluk N dizisi (> 0) için koşul comp(*Pi, *Pj) değerlendirme süreleridir N - 1 .

Bir özel durum yalnızca bir özel durum oluşturursa comp oluşur. Bu durumda, denetlenen sıra belirtilmeyen bir durumda bırakılır ve özel durum yeniden oluşturulur.

value_type

bir ileri listede depolanan öğenin türünü temsil eden bir tür.

typedef typename Allocator::value_type value_type;

Açıklamalar

türü, şablon parametresi Typeiçin bir eş anlamlıdır.