3-Ámeliy sabaq. Kontеynеrler (Kollеkciyalar). Sızıqlı konteynerler (list,
forward_list, deque)
Jumıstıń maqseti: C++ programmalastırıw tilinde konteyner klaslar hám
olardı qollanılıwdı úyreniw. Sızıqlı konteynerler: list, forward_list, deque
klaslarınan paydalanıp kónlikpelerdi qáliplestiriw.
Teoriyalıq bólim:
C++ te STL konteynerleri
STL konteynerleri maǵlıwmatlardı saqlaydı hám zárúr bolǵan jaǵdayda
olardı belgili bir tártipte shólkemlestiredi.
Mısalı,
vektorlar (vectors) bir tipli maǵlıwmatlardı retlilik (izbe-izlik)
penen saqlaydı. Al
kartalar (maps) maǵlıwmatlardı gilt-mánis juplarında
saqlaydı.
STL konteynerlerin 3 túrge bóliwge boladı:
1. Konteynerlerdiń izbe-izligi (retliligi):
Array (Massiv)
Vector (Vektor)
Queue (Gezek)
Deque (Sonlıqtan)
Forward_list (Aldıǵa_dizim)
List (Dizim)
2. Associativ konteynerler:
Set
Multiset
Map
Multimap
3. Retsiz associativli konteynerler:
Unordered_set
Unordered_multiset
Unordered_map
Unordered_multimap
ÁMELIY BÓLIM:
deque klası
Deque klasınıń shablonı:
template
class Allocator = std::allocator
> class deque;
std :: deque (óz-ara gezek) - indekslengen izbe-iz konteyner,
bul sizge
elementlerdi basınan hám aqırınan tez kirgiziw hám alıp taslaw imkaniyatın
beredi. Bunnan tısqarı, óz-ara (eki tárepleme) gezektiń eki tóbesine ornatıw hám
óshiriw kórsetkishleri hám basqa elementlerge baylanıstırıwdı qaldıradı.
Std :: vector-dan ayırmashılıǵı, deque elementleri turaqlı túrde
saqlanbaydı: ádetde bul belgilengen ólshemdegi ajıratılǵan qatarlar kompleksinen
paydalanıp ámelge asırıladı. deque avtomatikalıq túrde
qayta islenedi, kerek
bolǵanda keńeyedi. deque keńeytpesi std :: vector keńeytpesine qaraǵanda
qolaylılaw, sebebi ol ámeldegi elementlerdi jańa yadqa nusqalawdı talap etpeydi.
list klası
list klası shablonı:
template < class T,
class Allocator = std::allocator
> class list;
List - bul konteynerdiń hár qanday poziciyasınan elementlerdi tez kirgiziw
hám alıp taslawdı qollaytuǵın klass. Tez tosınarlı kirisiw qollamaydı. Eki
baylanısqan dizim retinde ámelge asıriladı. std::forward_list-den ayrıqsha bolıp
esaplanıw, bul konteyner óz-ara iteraciyani támiyinleydi, sonıń menen birge
paydalanılǵan yadqa salıstırǵanda ónimli emes.
forward_list
forward_list klasınıń shablonı:
template class Allocator = std::allocator
> class forward_list;
Forward_list - konteynerden elementlerdi kirgiziw hám alıp taslaw
mexanizmin támiyinleytuǵın klass. Tez tosınarlı kirisiwdi qollamaydı. Ol bir
baǵdarlanǵan dizim retinde ámelge asırıladı hám C tilindegi soǵan uqsas
programma menen salıstırǵanda qosımsha shıǵınlarǵa iye emes: std :: list ten
ayırmashılıǵı, bul túrdegi konteyner óz-ara iteraciyanı qollamaydı.
1-mısal: C++ STL Konteynerler: Vector
C++ tilinde vektorlar ólshemi ózgertilgen massivler sıyaqlı; olar bir tiptegi
maǵlıwmatlardı izbe-iz saqlaydı hám zárúr bolǵan jaǵdayda olardıń ólshemin
orınlaw waqtında ózgertiwge boladı. Vektordı paydalanıw ushın tema
(kitapxana) faylın import etiwimiz kerek.