C++ Standard Library
| C++ Standard Library |
|---|
| containers |
| standard library |
Főnév
C++ Standard Library (tsz. C++ Standard Libraries)
- (informatika) A C++ Standard Library egy gazdag funkciógyűjtemény, amely számos eszközt biztosít a programozók számára az adatszerkezetek, algoritmusok, be- és kimenetkezelés, memóriakezelés és sok más területen. Ezek a könyvtárak jelentősen könnyítik és gyorsítják a fejlesztést.
1. A C++ Standard Library Főbb Részei
A C++ Standard Library az alábbi nagyobb komponensekből áll:
| Kategória | Tartalom |
|---|---|
| Be- és kimenet | iostream, fstream |
| Konténerek | vector, list, map, set, deque |
| Algoritmusok | sort, find, min_element, max_element |
| Iterátorok | begin, end, next, prev |
| Memóriakezelés | unique_ptr, shared_ptr |
| Szálkezelés | thread, mutex, async |
| Matematika és számkezelés | cmath, numeric, random |
| Dátum és idő | chrono |
A Standard Library a std névtérben (namespace) található, így a legtöbb funkció elérése std:: előtaggal történik.
2. Be- és Kimenet (iostream, fstream)
A Standard Library biztosítja a konzolos és fájlalapú I/O műveleteket.
Konzol be- és kimenet
#include <iostream>
int main() {
std::cout << "Hello, világ!" << std::endl;
int szam;
std::cout << "Adj meg egy számot: ";
std::cin >> szam;
std::cout << "A beírt szám: " << szam << std::endl;
return 0;
}
Fájl be- és kimenet (fstream)
#include <iostream>
#include <fstream>
int main() {
std::ofstream fajl("adat.txt"); // Fájl megnyitása írásra
fajl << "Ez egy sor a fájlban.\n";
fajl.close();
std::ifstream beolvas("adat.txt"); // Fájl megnyitása olvasásra
std::string sor;
while (std::getline(beolvas, sor)) {
std::cout << sor << std::endl;
}
return 0;
}
3. Konténerek (STL konténerek)
A konténerek olyan adatszerkezetek, amelyek elemek tárolására és kezelésére szolgálnak.
Leggyakoribb konténerek:
| Konténer | Leírás |
|---|---|
std::vector |
Dinamikus tömb, gyors indexelés |
std::list |
Kétirányú láncolt lista |
std::deque |
Dupla végű sor |
std::set |
Egyedi elemek halmaza (rendezett) |
std::map |
Kulcs-érték párok tárolása (rendezett) |
Példa: std::vector használata
#include <iostream>
#include <vector>
int main() {
std::vector<int> v = {1, 2, 3, 4, 5};
v.push_back(6);
v.pop_back();
for (int x : v) std::cout << x << " ";
return 0;
}
Eredmény: 1 2 3 4 5
4. Algoritmusok (algorithm)
Az algorithm könyvtár hatékony rendezési, keresési és egyéb műveleteket biztosít.
| Algoritmus | Leírás |
|---|---|
std::sort |
Rendezés növekvő sorrendbe |
std::find |
Elem keresése |
std::min_element |
Legkisebb elem keresése |
std::max_element |
Legnagyobb elem keresése |
Példa: std::sort és std::find
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> v = {8, 3, 7, 1, 5};
std::sort(v.begin(), v.end());
auto it = std::find(v.begin(), v.end(), 7);
if (it != v.end()) {
std::cout << "A 7-es megtalálható a vektorban!" << std::endl;
}
return 0;
}
5. Iterátorok (iterator)
Az iterátorok lehetővé teszik a konténerek elemeinek bejárását.
| Iterátor | Leírás |
|---|---|
begin() |
Első elemre mutató iterátor |
end() |
Utolsó elem utáni iterátor |
rbegin() |
Fordított iteráció kezdete |
rend() |
Fordított iteráció vége |
Példa: Iterátor használata
#include <iostream>
#include <vector>
int main() {
std::vector<int> v = {1, 2, 3, 4, 5};
for (auto it = v.begin(); it != v.end(); ++it) {
std::cout << *it << " ";
}
return 0;
}
Eredmény: 1 2 3 4 5
6. Okos Mutatók (memory)
A dinamikus memória kezelése okos mutatókkal történhet.
| Okos mutató | Leírás |
|---|---|
std::unique_ptr |
Egyedüli tulajdonos |
std::shared_ptr |
Több helyen is megosztott tulajdonjog |
std::weak_ptr |
Gyenge referencia, elkerüli a ciklikus hivatkozásokat |
Példa: std::unique_ptr
#include <iostream>
#include <memory>
int main() {
std::unique_ptr<int> ptr = std::make_unique<int>(10);
std::cout << "Érték: " << *ptr << std::endl;
return 0;
}
Kimenet: Érték: 10
7. Szálkezelés (thread)
A Standard Library natív többszálú programozást is támogat.
Példa: Többszálú végrehajtás
#include <iostream>
#include <thread>
void hello() {
std::cout << "Hello szálból!" << std::endl;
}
int main() {
std::thread t(hello);
t.join(); // Megvárja a szál befejeződését
return 0;
}
Eredmény: Hello szálból!
Összegzés
✅ Beépített könyvtárak: A C++ Standard Library nagyon sok kész eszközt kínál.
✅ Konténerek és algoritmusok: Hatékony adatszerkezetek és rendezési/keresési algoritmusok.
✅ Modern programozás támogatása: Okos mutatók, szálkezelés, memóriakezelés.
✅ Biztonságosabb és gyorsabb fejlesztés: Az STL használata jobb és rövidebb kódot eredményez.
Ha hatékonyan szeretnéd kihasználni a C++ erejét, használd a Standard Library eszközeit! 🚀
- C++ Standard Library - Szótár.net (en-hu)
- C++ Standard Library - Sztaki (en-hu)
- C++ Standard Library - Merriam–Webster
- C++ Standard Library - Cambridge
- C++ Standard Library - WordNet
- C++ Standard Library - Яндекс (en-ru)
- C++ Standard Library - Google (en-hu)
- C++ Standard Library - Wikidata
- C++ Standard Library - Wikipédia (angol)