From MJanik
(Difference between revisions)
|
|
| Line 1: |
Line 1: |
| - |
| |
| | | | |
| | [http://www.if.pw.edu.pl/~majanik/data/JP/2012/makefile.pdf Makefile - instrukcja] | | [http://www.if.pw.edu.pl/~majanik/data/JP/2012/makefile.pdf Makefile - instrukcja] |
| | + | |
| | + | |
| | + | <hr /> |
| | + | |
| | + | ---+ Kontener STL <code>std::vector</code> |
| | + | |
| | + | ---++ Czym jest <code>std::vector</code>? |
| | + | <code>std::vector</code> to sekwencyjny kontener z biblioteki STL, który przechowuje elementy w sposób ciągły w pamięci. |
| | + | Umożliwia dynamiczne powiększanie i zmniejszanie rozmiaru podczas działania programu. |
| | + | Dostarcza szybki dostęp do elementów przez indeks (operacja O(1)) oraz efektywne dodawanie na końcu (amortyzowane O(1)). |
| | + | |
| | + | ---++ Najważniejsze cechy |
| | + | * Elementy są przechowywane w kolejności dodania. |
| | + | * Rozmiar może się zmieniać w trakcie działania programu. |
| | + | * Zapewnia dostęp za pomocą operatora <code>[]</code> i metody <code>at()</code>. |
| | + | * Posiada bogaty zestaw metod do modyfikowania zawartości. |
| | + | |
| | + | ---++ Najczęściej używane metody |
| | + | * <code>push_back(x)</code> – dodaje element na końcu. |
| | + | * <code>pop_back()</code> – usuwa ostatni element. |
| | + | * <code>size()</code> – zwraca liczbę elementów. |
| | + | * <code>empty()</code> – sprawdza, czy wektor jest pusty. |
| | + | * <code>clear()</code> – usuwa wszystkie elementy. |
| | + | * <code>begin()</code>, <code>end()</code> – iteratory pozwalające przechodzić po wektorze. |
| | + | |
| | + | ---++ Przykład użycia |
| | + | <verbatim> |
| | + | #include <vector> |
| | + | #include <iostream> |
| | + | |
| | + | int main() { |
| | + | std::vector<int> liczby; |
| | + | |
| | + | liczby.push_back(10); |
| | + | liczby.push_back(20); |
| | + | liczby.push_back(30); |
| | + | |
| | + | for (size_t i = 0; i < liczby.size(); i++) { |
| | + | std::cout << liczby[i] << std::endl; |
| | + | } |
| | + | |
| | + | return 0; |
| | + | } |
| | + | </verbatim> |
| | + | |
| | + | ---++ Kiedy używać <code>std::vector</code>? |
| | + | * Gdy potrzebujesz dynamicznej tablicy. |
| | + | * Gdy kluczowy jest szybki dostęp do elementów. |
| | + | * Gdy dane często dodajesz na końcu kontenera. |
| | + | * Gdy zależy Ci na prostocie i efektywności. |
| | + | |
| | + | ---++ Zalety |
| | + | * Bardzo szybki dostęp do elementów. |
| | + | * Kompaktowe przechowywanie danych w pamięci. |
| | + | * Prosta obsługa i szerokie wsparcie w STL. |
| | + | |
| | + | ---++ Wady |
| | + | * Wstawianie elementów w środku jest kosztowne (przesuwanie danych). |
| | + | * Przealokowanie podczas powiększania może czasem kosztować więcej czasu. |
| | + | |
| | + | ---++ Podsumowanie |
| | + | <code>std::vector</code> to najczęściej używany kontener STL dzięki swojej wydajności, elastyczności i intuicyjności. |
| | + | W większości przypadków stanowi zalecaną strukturę do przechowywania sekwencji danych w C++. |
Revision as of 13:19, 19 November 2025
Makefile - instrukcja
---+ Kontener STL std::vector
---++ Czym jest std::vector?
std::vector to sekwencyjny kontener z biblioteki STL, który przechowuje elementy w sposób ciągły w pamięci.
Umożliwia dynamiczne powiększanie i zmniejszanie rozmiaru podczas działania programu.
Dostarcza szybki dostęp do elementów przez indeks (operacja O(1)) oraz efektywne dodawanie na końcu (amortyzowane O(1)).
---++ Najważniejsze cechy
* Elementy są przechowywane w kolejności dodania.
* Rozmiar może się zmieniać w trakcie działania programu.
* Zapewnia dostęp za pomocą operatora [] i metody at().
* Posiada bogaty zestaw metod do modyfikowania zawartości.
---++ Najczęściej używane metody
* push_back(x) – dodaje element na końcu.
* pop_back() – usuwa ostatni element.
* size() – zwraca liczbę elementów.
* empty() – sprawdza, czy wektor jest pusty.
* clear() – usuwa wszystkie elementy.
* begin(), end() – iteratory pozwalające przechodzić po wektorze.
---++ Przykład użycia
<verbatim>
- include <vector>
- include <iostream>
int main() {
std::vector<int> liczby;
liczby.push_back(10);
liczby.push_back(20);
liczby.push_back(30);
for (size_t i = 0; i < liczby.size(); i++) {
std::cout << liczby[i] << std::endl;
}
return 0;
}
</verbatim>
---++ Kiedy używać std::vector?
* Gdy potrzebujesz dynamicznej tablicy.
* Gdy kluczowy jest szybki dostęp do elementów.
* Gdy dane często dodajesz na końcu kontenera.
* Gdy zależy Ci na prostocie i efektywności.
---++ Zalety
* Bardzo szybki dostęp do elementów.
* Kompaktowe przechowywanie danych w pamięci.
* Prosta obsługa i szerokie wsparcie w STL.
---++ Wady
* Wstawianie elementów w środku jest kosztowne (przesuwanie danych).
* Przealokowanie podczas powiększania może czasem kosztować więcej czasu.
---++ Podsumowanie
std::vector to najczęściej używany kontener STL dzięki swojej wydajności, elastyczności i intuicyjności.
W większości przypadków stanowi zalecaną strukturę do przechowywania sekwencji danych w C++.