STL — Standard Template Library
Algoritmi STL
Header-ul <algorithm> conține zeci de algoritmi gata implementați.
algorithms.cpp
#include <algorithm>
#include <vector>
using namespace std;
vector<int> v = {5, 2, 8, 1, 9, 3};
sort(v.begin(), v.end()); // {1,2,3,5,8,9}
reverse(v.begin(), v.end()); // {9,8,5,3,2,1}
int mn = *min_element(v.begin(), v.end()); // 1
int mx = *max_element(v.begin(), v.end()); // 9
int cnt = count(v.begin(), v.end(), 5); // câte apariții are 5
// Căutare binară (doar pe array sortat!)
sort(v.begin(), v.end());
bool gasit = binary_search(v.begin(), v.end(), 8); // true| Algoritm | Descriere | Complexitate |
|---|---|---|
| sort | Sortare | O(n log n) |
| find | Căutare liniară | O(n) |
| binary_search | Căutare binară | O(log n) |
| count | Număr apariții | O(n) |
| reverse | Inversare | O(n) |
| unique | Elimină duplicate consecutive | O(n) |
| accumulate | Sumă/produs | O(n) |