forward_list Sınıfı
Değişen uzunluktaki öğe dizisini denetleen bir nesneyi açıklar. Sıra, her biri türünde Type
bir ü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 allocator
bir 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_list
silindiğ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_list bir 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 cbegin
dönüş değeriyle, aralıktaki öğeler değiştirilemez.
Dönüş değerinin olduğunu const_iterator
garanti 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_iterator
garanti 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_list
bir 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 merge
gö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
right
kaldı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
j
yineleyiciler Pi
ve Pj
öğeleri belirleme için, ilk üye işlevi her zaman i < j
sırayı !(*Pj < *Pi)
uygular. (Öğeler sırayla sıralanırascending
.) İkinci üye işlevi her zaman i < j
sı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 right
bir öğ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 Type
dizisi 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 == val
tarafı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 P
tarafı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
j
yineleyiciler Pi
ve Pj
öğeleri belirleme için, ilk üye işlevi her zaman i < j
sırayı !(*Pj < *Pi)
uygular. (Öğeler sırayla sıralanırascending
.) Üye şablonu işlevi her zaman i < j
sipariş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 this
olmamalı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 == ++Iter
hiç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 != this
eklerseN
, 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
j
yineleyiciler 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 Type
için bir eş anlamlıdır.