InformaticăbacalaureatClasa 11mediu
STL în C++ - Vector, Set, Map pentru BAC
Structuri de date din STL: vector, set, map, stack, queue - utilizări practice și exemple pentru BAC.
29 zile în urmă
0 vizualizări
40 minute
STL în C++ pentru BAC
Ce este STL?
Standard Template Library (STL) = colecție de structuri de date și algoritmi gata de folosit.
vector<T>
Array dinamic care își poate schimba dimensiunea.
1#include <vector> 2using namespace std; 3 4vector<int> v; // Vector gol 5vector<int> v(10); // 10 elemente (valoare 0) 6vector<int> v(5, 3); // 5 elemente, toate = 3 7 8// Operații 9v.push_back(10); // Adaugă la final 10v.pop_back(); // Șterge ultimul 11v.size(); // Număr elemente 12v[i]; // Acces element 13v.front(); // Primul element 14v.back(); // Ultimul element 15v.empty(); // Verifică dacă e gol 16v.clear(); // Golește vectorul
set<T>
Mulțime ordonată de elemente unice.
1#include <set> 2 3set<int> s; 4s.insert(5); // Adaugă element 5s.insert(3); 6s.insert(5); // Nu se adaugă (deja există) 7s.erase(3); // Șterge element 8s.count(5); // 1 dacă există, 0 altfel 9s.find(5); // Iterator la element 10 11// Parcurgere (în ordine crescătoare!) 12for (int x : s) { 13 cout << x << " "; 14}
map<K, V>
Dicționar (perechi cheie-valoare).
1#include <map> 2 3map<string, int> varste; 4varste["Ion"] = 20; 5varste["Maria"] = 18; 6 7cout << varste["Ion"]; // 20 8 9// Verificare existență 10if (varste.count("Ion")) { 11 cout << "Există"; 12} 13 14// Parcurgere 15for (auto& p : varste) { 16 cout << p.first << ": " << p.second << endl; 17}
stack<T> și queue<T>
1#include <stack> 2#include <queue> 3 4// STACK (LIFO) 5stack<int> st; 6st.push(1); // Adaugă 7st.top(); // Element din vârf 8st.pop(); // Scoate din vârf 9 10// QUEUE (FIFO) 11queue<int> q; 12q.push(1); // Adaugă la coadă 13q.front(); // Primul element 14q.pop(); // Scoate primul
Algoritmi STL
1#include <algorithm> 2 3vector<int> v = {5, 2, 8, 1, 9}; 4 5sort(v.begin(), v.end()); // Sortare crescătoare 6sort(v.begin(), v.end(), greater<int>()); // Descrescătoare 7 8reverse(v.begin(), v.end()); // Inversare 9*min_element(v.begin(), v.end()); // Minim 10*max_element(v.begin(), v.end()); // Maxim 11 12// Căutare binară (vectorul trebuie sortat!) 13binary_search(v.begin(), v.end(), 5); // true/false
Exerciții
- •Citește n numere și elimină duplicatele folosind set
- •Numără frecvența fiecărui element folosind map
- •Implementează o stivă de caractere pentru verificarea parantezelor
Găsește un profesor de informatică pentru pregătire BAC!
Tutorialul te-a ajutat?
Dacă ai nevoie de ajutor personalizat, găsește un profesor calificat pentru meditații
