November 22, 2025, Saturday, 325

Języki Programowania 8

From MJanik

(Difference between revisions)
Jump to: navigation, search
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]
Line 5: Line 4:
<hr />
<hr />
-
---+ Kontener STL <code>std::vector</code>
+
''' <u>Kontener STL <code>std::vector</code> </u>
-
---++ Czym jest <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.   
<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.   
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)).
Dostarcza szybki dostęp do elementów przez indeks (operacja O(1)) oraz efektywne dodawanie na końcu (amortyzowane O(1)).
-
---++ Najważniejsze cechy
+
''' Najważniejsze cechy
   * Elementy są przechowywane w kolejności dodania.
   * Elementy są przechowywane w kolejności dodania.
   * Rozmiar może się zmieniać w trakcie działania programu.
   * Rozmiar może się zmieniać w trakcie działania programu.
Line 18: Line 17:
   * Posiada bogaty zestaw metod do modyfikowania zawartości.
   * Posiada bogaty zestaw metod do modyfikowania zawartości.
-
---++ Najczęściej używane metody
+
''' Najczęściej używane metody
   * <code>push_back(x)</code> – dodaje element na końcu.
   * <code>push_back(x)</code> – dodaje element na końcu.
   * <code>pop_back()</code> – usuwa ostatni element.
   * <code>pop_back()</code> – usuwa ostatni element.
Line 26: Line 25:
   * <code>begin()</code>, <code>end()</code> – iteratory pozwalające przechodzić po wektorze.
   * <code>begin()</code>, <code>end()</code> – iteratory pozwalające przechodzić po wektorze.
-
---++ Przykład użycia
+
''' Przykład użycia
<verbatim>
<verbatim>
#include <vector>
#include <vector>
Line 46: Line 45:
</verbatim>
</verbatim>
-
---++ Kiedy używać <code>std::vector</code>?
+
''' Kiedy używać <code>std::vector</code>?
   * Gdy potrzebujesz dynamicznej tablicy.
   * Gdy potrzebujesz dynamicznej tablicy.
   * Gdy kluczowy jest szybki dostęp do elementów.
   * Gdy kluczowy jest szybki dostęp do elementów.
Line 52: Line 51:
   * Gdy zależy Ci na prostocie i efektywności.
   * Gdy zależy Ci na prostocie i efektywności.
-
---++ Zalety
+
''' Zalety
   * Bardzo szybki dostęp do elementów.
   * Bardzo szybki dostęp do elementów.
   * Kompaktowe przechowywanie danych w pamięci.
   * Kompaktowe przechowywanie danych w pamięci.
   * Prosta obsługa i szerokie wsparcie w STL.
   * Prosta obsługa i szerokie wsparcie w STL.
-
---++ Wady
+
''' Wady
   * Wstawianie elementów w środku jest kosztowne (przesuwanie danych).
   * Wstawianie elementów w środku jest kosztowne (przesuwanie danych).
   * Przealokowanie podczas powiększania może czasem kosztować więcej czasu.
   * Przealokowanie podczas powiększania może czasem kosztować więcej czasu.
-
---++ Podsumowanie
+
''' Podsumowanie
<code>std::vector</code> to najczęściej używany kontener STL dzięki swojej wydajności, elastyczności i intuicyjności.   
<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++.
W większości przypadków stanowi zalecaną strukturę do przechowywania sekwencji danych w C++.

Revision as of 13:21, 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>

  1. include <vector>
  2. 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++.