inkrementacji iteratora możemy przeglądać kolejne elementy...
Serwis znalezionych hasełOdnośniki
- Smutek to uczucie, jak gdyby się tonęło, jak gdyby grzebano cię w ziemi.
- \par cech, w kt\'f3rej badacze wyr\'f3\'bfniaj\'b9 elementy achajskie (nie wymienili\'9c-\par my tego dialektu w nazwanych wy\'bfej grupach, bo p\'f3\'9fniej nie...
- Po drugie: gdyby nawet państwa zachodniej Europy naprawdę robiły to samo, co kolejne rządy Polski (a nie robią, o czym za chwilę), to są to państwa bogate i jeśli...
- Picker) Lista obsługująca Implementuje listę, umożliwiającą zmianę kolejności brak przeciąganie elementów przez przeciąganie...
- — Ale od tego mo¿e zale¿eæ los miliardów ludzi na Ziemi i kolejnych miliardów w ca³ej Galaktyce...
- ZWRACAJ UWAGĘ NA SWOJE MEMORANDAInformacje wewnętrzne firmy (memoranda) to kolejna pułapka...
- prostszego i bardziej przekonującego sposobu oświadczenia, Ŝe ja uwaŜam cię za Ŝe - kolejny raz - poczuł, jak z jego serca znikają resztki chłodu...
- Kolejności zwiedzania miasta oczywiście nie pamiętam i nie ma ona wielkiego znaczenia, w każdym razie wieczorem, wykończona doszczętnie, jechałam do hotelu...
- Byæ mo¿e, i¿ tu w³aœnie odkryjemy jeszcze dziedzinê naszego wynalazku, dziedzinê, w której zdobyæ siê mo¿emy jeszcze na oryginalnoœæ, naprzyk³ad [!] jako parodyœci...
- ze spokojem opuścić element TIM, ponieważ stacje wysyłające ramki typu Probe nie są jeszcze skojarzone z siecią i dlatego nie potrzebują wiedzy na temat,...
- „Jakie to miłe, że wszystko, na co tylko mamy ochotę, możemy zanieczyścić pewnymi substancjami, takimi jak: tlen, ozon, azot, argon albo parą czy jakąś biotą...
Smutek to uczucie, jak gdyby się tonęło, jak gdyby grzebano cię w ziemi.
Jeżeli w
kontenerze są przechowywane dane, to możemy nimi manipulować przy
pomocy algorytmów w sensie STL.
Wprowadzenie do STL
21
Tabela 2.4. Funkcje składowe (vector, deque, list, set, multiset, map i
multimap)
Lp.
Funkcja
Opis
1
Konstruktor
Wykonuje inicjowanie kontenera, zazwyczaj
domyślny
kontener posiada kilka konstruktorów
2
Konstruktor
Wykonuje kopiÄ™ istniejÄ…cego kontenera
kopiujÄ…cy
3
empty()
Zwraca true, jeżeli w kontenerze nie ma
elementów, w przeciwnym przypadku zwraca
false
4
max_size()
Zwraca maksymalną liczbę elementów w
kontenerze
5
size()
Zwraca bieżącą liczbę elementów w kontenerze
6
swap()
Wymienia elementy dwóch kontenerów
7
begin()
Zwraca iterator, który wskazuje na pierwszy
element kontenera
8
end()
Zwraca iterator, który wskazuje na pozycję po
ostatnim elemencie kontenera
9
rbegin()
Zwraca iterator odwrotny dla pierwszego
elementu iteracji odwrotnej
10
rend()
Zwraca iterator odwrotny dla pozycji za
ostatnim elementem iteracji odwrotnej
11
erase()
Usuwa jeden albo wszystkie elementy z zakresu
w kontenerze
12
clear()
Opróżnia kontener
13
insert()
Wstawia kopiÄ™ elementu do kontenera
14
get_allocator()
Zwraca model pamięci kontenera
2.2. Kontenery sekwencyjne
Kontenery sekwencyjne są kontenerami, które obsługują skończony zbiór
elementów, wszystkie muszą być tego samego typu, elementy musza być
uporządkowane ściśle liniowo. W STL mamy trzy rodzaje takich kontenerów:
vector, list oraz deque. Uporządkowanie liniowe oznacza, że istnieje pierwszy
element . Każdy element pomiędzy pierwszy i ostatnim ma ściśle jeden element
poprzedzajÄ…cy i jeden element za nim.
Zgodnie z pracÄ… A.Stepanowa i M. Lee kontenery sekwencyjne majÄ…
wspólne właściwości przedstawione w tabeli 2.5.
22
2. Kontenery
Tabela 2.5. Właściwości kontenerów sekwencyjnych (dla vector, deque i
list)
Lp.
Wyrażenie
Zwracany typ
Opis
1
X(n, t)
Tworzy sekwencje n kopii
wartości t
2
X a(n, t)
Deklaruje sekwencje n
kopii wartości t
3
X a(i, j)
Deklaruje sekwencjÄ™ a
inicjalizowanÄ… na podstawie
zawartości zakresu (i,j)
4
X(i, j)
Tworzy sekwencjÄ™
zainicjalizowanÄ… za pomocÄ…
wartości zakresu (i,j)
5
a.insert(p, t)
iterator
Wstawia kopiÄ™ t przed p,
zwracana wartość wskazuje
na wstawiana kopie
6
a.insert(p, n, t)
void
Wstawia n kopii t przed p
7
a.insert(p, i, j)
void
Wstawia kopie elementów z
zakresu (i, j) przed p
8
a.erase(q)
iterator
Usuwa element, na który
wskazuje q
9
a.erase(q1, q2)
Niektóre kontenery Usuwa elementy z zakresu
zwracają następny (q1, q2)
nieusunięty element
10
a.clear()
void
To samo co erase(begin(),
end() )
STL dostarcza pewną ilość dodatkowych właściwości kontenerów
sekwencyjnych, pokazane one sÄ… w tabeli 2.6.
Tabela 2.6. Dodatkowe właściwości kontenerów sekwencyjnych
Lp.
Wyrażenie
Zwracany
Znaczenie
kontenery
typ
1
a.front()
T&
*a.begin()
vector, list, deque
2
a.back()
T&
*a.(--end())
vector, list, deque
3
a.push_front(t)
void
a.insert(a.begin(), t) list, deque
4
a.push_back(t)
void
a.insert(a.end(),t)
vector, list, deque
5
a.pop_front()
void
a.erase(a.begin())
list, deque
6
a.pop_back()
void
a.erase(--a.end())
vector, list, deque
7
a[n]
T&
*(a.begin() + n)
vector, deque
8
a.at(n)
T&
*(a.begin() + n)
vector, deque
Wprowadzenie do STL
23
Kontenery są użyteczne, gdy można w nich umieszczać obiekty i je usuwać.
Opracowując składniki STL zwrócono uwagę na wydajność metod i
algorytmów. Jak pamiętamy, w informatyce dla porównywania względnej
zÅ‚ożonoÅ›ci algorytmów używa siÄ™ specjalistycznej notacji – jest to notacja O
(ang. big-O notation). Notacja O wyraża czas wykonania algorytmu, jako
funkcję podanego rozmiaru danych wejściowych. Złożoność algorytmu wynosi