wleci
O mnieProjektyBlogKontakt
Kontakt
Wróć do bloga
C++AlgorytmySTL

Podstawowe Algorytmy w C++: Sortowanie, Wyszukiwanie i Generowanie

Poznaj potęgę biblioteki <algorithm>. Przewodnik po funkcjach std::sort, std::find, std::copy oraz generowaniu ciągów danych.

28 stycznia 20261 min czytania
Udostępnij:

Standardowe Algorytmy STL

Zamiast pisać własne pętle, C++ oferuje zoptymalizowane algorytmy w nagłówku <algorithm> oraz <numeric>. Oto cztery kluczowe kategorie:

1. Sortowanie (Sorting)

Najczęściej używaną funkcją jest std::sort. Działa ona w czasie O(Nlog⁡N)O(N \log N)O(NlogN).

cpp
std::vector<int> v = {5, 2, 8, 1, 9}; std::sort(v.begin(), v.end()); // Sortuje rosnąco

2. Wyszukiwanie (Searching)

  • std::find: Szuka elementu w dowolnym kontenerze (złożoność liniowa).
  • std::binary_search: Bardzo szybkie wyszukiwanie w posortowanych danych.
cpp
auto it = std::find(v.begin(), v.end(), 8); if (it != v.end()) { /* Znaleziono! */ }

3. Kopiowanie (Copying)

std::copy pozwala przenieść dane z jednego miejsca do drugiego. Często używane z std::back_inserter.

cpp
std::vector<int> v2; std::copy(v.begin(), v.end(), std::back_inserter(v2));

4. Generowanie ciągów i wypełnianie

  • std::fill: Wypełnia zakres jedną wartością.
  • std::iota: (z nagłówka <numeric>) Generuje rosnący ciąg liczb (np. 1, 2, 3...).
cpp
std::vector<int> data(10); std::iota(data.begin(), data.end(), 1); // Wypełnia od 1 do 10

Dobra praktyka: Używaj algorytmów zamiast ręcznych pętli for. Są one lepiej zoptymalizowane przez kompilator i rzadziej zawierają błędy typu „off-by-one”.

Może Cię zainteresować

C++C

Napisy w stylu C: Tablice typu char i znak null

Zrozumienie niskopoziomowej obsługi tekstu: jak działają tablice znakowe zakończone bajtem zerowym.

2 min czytania
C++Matematyka

Biblioteka <cmath> w C++ – Niezbędnik Matematyczny

Przegląd najważniejszych funkcji matematycznych w C++: od potęgowania po zaawansowaną trygonometrię.

1 min czytania
C++Programowanie

Zrozumieć Dyrektywę #include w C++

Przewodnik po dyrektywie #include: dowiedz się, jak preprocesor łączy pliki i dlaczego wybór nawiasów ma znaczenie.

1 min czytania
Wróć do bloga
wleci.pl

Full-stack Developer

Tworzę nowoczesne aplikacje webowe z pasją do czystego kodu i dobrego designu.

[email protected]
Polska

Nawigacja

  • Start
  • O mnie
  • Projekty
  • Blog
  • Kontakt

Usługi

  • Aplikacje webowe
  • Strony internetowe
  • API & Backend
  • Konsultacje

Technologie

  • React / Next.js
  • TypeScript
  • Node.js
  • PostgreSQL

Social

© 2026 wleci.pl. Wszelkie prawa zastrzeżone.

Polityka prywatności•Regulamin

Zrobione z w Polsce