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

Type
içinde forward_listdepolanacak öğe veri türü.

Allocator
Bellek ayırma ve serbest bırakma hakkındaki forward_list 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, Sınıfı temel alan Allocator (yaygın olarak olarak allocatorbilinir) bir sınıfın depolanan 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 forward_list::insert_afterType(const T&)çağıran tek üye işlevi olan öğesine yapılan çağrılarla 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ü.
iterator İleriye doğru liste için yineleyici sağlayan bir tür.
pointer İleri listedeki bir öğeye işaretçi sağlayan tür.
reference İ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
assign 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.
begin 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.
clear İ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.
end 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.
front 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.
merge Öğ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.
resize İleriye doğru liste için yeni bir boyut belirtir.
reverse Öğelerin ileriye doğru bir listede yer alma sırasını tersine çevirir.
sort Öğ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.
swap İ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 , şablon parametresinin Allocatoreş anlamlısıdır.

assign

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

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

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

count
Atanacak öğe sayısı.

val
Her öğeye atanacak değer.

Type
Değerin türü.

IList
Kopyalanacak initializer_list .

Açıklamalar

forward_list bir 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 Countöğelerinin tekrarı Val ile değiştirir.

Üçüncü üye işlevi öğelerini initializer_list içine forward_listkopyalar.

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.

begin

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.

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.

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 begin()garanti etmek için üye işlevinin const_iterator yerine bu üye işlevini kullanabilirsiniz. Genellikle, aşağıdaki örnekte gösterildiği gibi tür kesinti anahtar sözcüğüyle auto birlikte kullanılır. Örnekte, ve Containerdestekleyen herhangi bir türde const değiştirilebilir (non- begin()) kapsayıcısı olduğunu düşününcbegin().

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 end()garanti etmek için üye işlevinin const_iterator yerine bu üye işlevini kullanabilirsiniz. Genellikle, aşağıdaki örnekte gösterildiği gibi tür kesinti anahtar sözcüğüyle auto birlikte kullanılır. Örnekte, ve Containerdestekleyen herhangi bir türde const değiştirilebilir (non- end()) kapsayıcısı olduğunu düşününcend().

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.

clear

İ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;

const_reference

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

typedef typename Allocator::const_reference const_reference;

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

Where
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 öğesinin işaret ettiği val öğeden hemen sonra oluşturucu bağımsız değişkenleriyle Where bir öğe ekler. Davranışı aksi takdirde ile forward_list::insert_afteraynı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 başına 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

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

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

last
Silinecek aralığın sonu.

Dönüş Değeri

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

Açıklamalar

İlk üye işlevi, denetimli dizinin öğesini hemen sonrasında Wherekaldı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ı.

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

Val
Listede bulunan öğelerin değeri.

Right
Oluşturulacak listenin kopya olacağı liste.

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

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

IList
Kopyalanacak initializer_list .

Açıklamalar

Tüm oluşturucular bir allocator depolar ve denetlenen diziyi başlatır. Ayırıcı nesnesi varsa bağımsız değişkenidir Al. 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ğerinin Countöğelerinin tekrarını Type() belirtir.

Dördüncü ve beşinci oluşturucular, değerinin Countöğelerinin tekrarını Val 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 (size_type)Firstöğelerinin tekrarını (Type)Last 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.

front

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 allocator nesne.

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

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

Count
Eklenecek öğe sayısı.

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

Last
Ekleme aralığının sonu.

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

IList
initializer_list Eklenecek öğe.

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 tarafından Where işaret edilen öğeden hemen sonra, kalan işlenenler tarafından belirtilen bir dizi ekler.

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

İkinci üye işlevi, değerinin Countöğelerinin tekrarını Val 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.

merge

İ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

right
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_listrightkaldı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 PiPjyineleyiciler i ve j öğeleri belirleme için, ilk üye işlevi her zaman !(*Pj < *Pi)sırayı i < j uygular. (Öğeler sırayla sıralanırascending.) İkinci üye işlevi her zaman ! comp(*Pj, *Pi)sırayı i < j 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şit ()!(*Pi < *Pj) && !(*Pj < *Pi) karşılaştırılı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

right
İ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ı tarafından rightdenetlenen dizinin 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.

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

resize

İ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 olduğundan emin olun _Newsize. Denetlenen sırayı daha uzun hale getirmesi gerekiyorsa, ilk üye işlevi değeri Type()olan öğeleri eklerken, ikinci üye işlevi de değerine valsahip öğ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()).

reverse

Öğ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.

sort

Öğ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 PiPjyineleyiciler i ve j öğeleri belirleme için, ilk üye işlevi her zaman !(*Pj < *Pi)sırayı i < j uygular. (Öğeler sırayla sıralanırascending.) Üye şablonu işlevi her zaman ! pred(*Pj, *Pi)siparişi i < j uygular. Özgün denetimli dizideki sıralı öğe çiftleri, sonuçta elde edilen denetimli dizide ters çevrilmiş değildir. (Sıralama kararlıdır.)

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

splice_after

Kaynaktan forward_list öğeleri kaldırır ve hedef forward_listöğesine 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

Where
Eklenecek hedefteki forward_list konum.

Source
hedefine forward_listeklenecek kaynakforward_list.

Iter
Kaynağından forward_listeklenecek öğe.

First
Kaynaktan forward_listeklenecek aralıktaki ilk öğe.

Last
Kaynaktan forward_listeklenecek aralığın ötesindeki ilk konum.

Açıklamalar

İlk üye işlev çifti, tarafından Source işaret edilen denetlenen dizideki öğesinden hemen sonra tarafından Wheredenetlenen diziyi ekler. Ayrıca öğesinden Sourcetüm öğeleri kaldırır. (&Source eşit thisolmamalıdır.)

İkinci üye işlev çifti, tarafından denetlenen Iter diziden hemen sonra Source öğesini kaldırır ve tarafından işaret edilen denetimli dizideki öğesinden hemen sonra eklerWhere. (Ise Where == Iter || Where == ++Iterhiçbir değişiklik olmaz.)

Üye işlevlerin üçüncü çifti (aralıklı splice), tarafından (First, Last) işaret edilen denetimli dizideki öğesinden hemen sonra tarafından Source denetlenen diziden Whereatanan alt alanı ekler. Ayrıca, tarafından Sourcedenetlenen diziden özgün alt diziyi kaldırır. (Ise &Source == this, aralık (First, Last) tarafından Whereişaret edilen öğeyi içermemelidir.)

Aralıklı splice öğeleri ve Neklerse&Source != this, sınıfın iterator nesnesi artımlı N zamanlar olur.

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

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

Açıklamalar

Üye işlevi, ve arasında *thisrightdenetlenen dizileri 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 PiPjyineleyiciler i ve j öğ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.