Witam! Czym się różnią od siebie te kontenery? Są jeszcze:
*deque
*stack
*queue
*priority_queue
*set
*multiset
*multimap Multiple-key map (class template )
*bitset
Jakie są różnice, zalety, wady i do czego służy każdy z poszczególnych?
Źródło: http://www.cplusplus.com/reference/stl/
Czasem wykonywania na nich operacji, sposobem przechowywania elementów, zastosowaniem...
Sam sobie podsunąłeś link, w którym wszystko jest opisane
Ciężko na tamtej stronie znaleźć po krótce. Musiałbym wszyyystko przeczytać, a trochę tego jest. Dobra, chciałbym troszkę konkretniej każdy z kontenerów i, którego użyć do zwykłej tablicy elementów, abym mógł mieć swobodny dostęp do każdego elementu itd. czyli łatwość operacji.
vector - obudowana tablica dynamiczna czy coś takiego, zawiera wiele przydatnych metod
list - lista dwukierunkowej
queue - kolejka FIFO
priority_queue - kolejka priorytetowa
stack - stos
map - zbiornik, który charakteryzuje się tym, że kolejność jest ustalana według jakiegoś klucza
set - zbiór, sortuje dane które przechowuje
deque - kolejka dwustronna
Polecam lekturę Pasji c++.
Małe sprostowanie do postu wyżej:
map - kontener asocjacyjny, który łączy klucz z wartością, dodatkowo automatycznie sortuje elementy po kluczu
set - zbiór (przechowuje tylko pojedyncze elementy o takiej samej wartości - w przeciwieństwie do multiset). set i multiset są automatycznie posortowane, wartość jest równocześnie kluczem
Tutaj trochę o tym jest : http://matrix.umcs.lublin.pl/~akobus/obcpp/cplusplus03.pdf