vector library
Főnév
vector library (tsz. vector libraries)
vector könyvtár C++ nyelven
A vector a C++ Standard Template Library (STL) egyik dinamikus adatszerkezete, amely egy automatikusan méreteződő tömbként működik. A vector használatával hatékonyan kezelhetünk elemeket, dinamikusan bővíthetjük vagy csökkenthetjük a méretét, és sok beépített függvényt kínál az adatok kezelésére.
A vector használatához be kell illeszteni az #include <vector> fejlécet.
1. vector létrehozása és alapvető használata
A vector használata hasonló egy hagyományos tömbhöz, de sokkal rugalmasabb.
Egyszerű vector létrehozása
#include <iostream>
#include <vector>
int main() {
std::vector<int> szamok = {1, 2, 3, 4, 5}; // Létrehozás és inicializálás
std::cout << "Az első elem: " << szamok[0] << std::endl;
std::cout << "A vektor mérete: " << szamok.size() << std::endl;
return 0;
}
🔹 std::vector<int> - Egy int típusú vektort hozunk létre.
🔹 size() - Megadja az elemek számát.
2. Elemműveletek
A vector támogatja az elemek beszúrását, törlését és módosítását.
Elemek hozzáadása (push_back)
#include <iostream>
#include <vector>
int main() {
std::vector<int> szamok;
szamok.push_back(10);
szamok.push_back(20);
szamok.push_back(30);
std::cout << "A vektor tartalma: ";
for (int szam : szamok) {
std::cout << szam << " ";
}
std::cout << std::endl;
return 0;
}
🔹 push_back(value) - Hozzáad egy elemet a vektor végéhez.
Elemek törlése (pop_back és erase)
#include <iostream>
#include <vector>
int main() {
std::vector<int> szamok = {10, 20, 30, 40, 50};
szamok.pop_back(); // Utolsó elem törlése
szamok.erase(szamok.begin() + 1); // Második elem törlése (index 1)
std::cout << "A vektor tartalma: ";
for (int szam : szamok) {
std::cout << szam << " ";
}
std::cout << std::endl;
return 0;
}
🔹 pop_back() - Eltávolítja az utolsó elemet.
🔹 erase(iterator) - Egy adott pozíción lévő elemet töröl.
Vektor törlése (clear)
szamok.clear(); // Minden elem törlése
🔹 clear() - Az összes elemet eltávolítja, de a vektor kapacitása nem változik.
3. Méret és kapacitás kezelése
A vector automatikusan növeli a méretét, de lehetőség van előre beállítani a kapacitását.
Méret és kapacitás lekérdezése
std::cout << "Méret: " << szamok.size() << std::endl; // Az aktuális elemszám
std::cout << "Kapacitás: " << szamok.capacity() << std::endl; // A lefoglalt memória
Kapacitás növelése (reserve)
szamok.reserve(100); // Lefoglalja a memóriát 100 elem számára
🔹 reserve(n) - Előre lefoglal n elemnyi memóriát, így elkerülhetjük a többszöri újrafoglalás miatti teljesítménycsökkenést.
4. Elemlista bejárása (iteráció)
A vektorok bejárására több módszer is létezik.
Hagyományos for ciklus
for (size_t i = 0; i < szamok.size(); i++) {
std::cout << szamok[i] << " ";
}
for-each ciklus
for (int szam : szamok) {
std::cout << szam << " ";
}
Iteratorok használata
for (std::vector<int>::iterator it = szamok.begin(); it != szamok.end(); ++it) {
std::cout << *it << " ";
}
🔹 Az begin() az első elemre mutat.
🔹 Az end() az utolsó utáni elemre mutat.
5. Keresés és rendezés
Elem keresése (find)
#include <iostream>
#include <vector>
#include <algorithm>
int main() {
std::vector<int> szamok = {10, 20, 30, 40, 50};
auto it = std::find(szamok.begin(), szamok.end(), 30);
if (it != szamok.end()) {
std::cout << "Az elem megtalálható a vektorban." << std::endl;
} else {
std::cout << "Az elem NINCS a vektorban." << std::endl;
}
return 0;
}
Vektor rendezése (sort)
std::sort(szamok.begin(), szamok.end()); // Növekvő sorrend
std::sort(szamok.rbegin(), szamok.rend()); // Csökkenő sorrend
🔹 sort() gyorsan rendezi a vektort növekvő sorrendben.
🔹 rbegin() és rend() segítségével csökkenő sorrendbe rendezhetjük.
6. Két vektor összefűzése
#include <iostream>
#include <vector>
int main() {
std::vector<int> v1 = {1, 2, 3};
std::vector<int> v2 = {4, 5, 6};
v1.insert(v1.end(), v2.begin(), v2.end()); // Második vektor elemeit hozzáadja az elsőhöz
for (int n : v1) {
std::cout << n << " ";
}
return 0;
}
🔹 insert() - Egy másik vektor elemeit illeszti be.
7. Többdimenziós vektorok
A vector támogatja a tömbök tömbjét (mátrixokat).
#include <iostream>
#include <vector>
int main() {
std::vector<std::vector<int>> matrix = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
for (const auto& sor : matrix) {
for (int elem : sor) {
std::cout << elem << " ";
}
std::cout << std::endl;
}
return 0;
}
🔹 A vector<vector<int>> mátrixokat reprezentál.
Összegzés
A vector a C++ egyik legfontosabb adatszerkezete, amely: ✅ Dinamikusan méretezhető
✅ Kényelmes elemműveleteket kínál (push_back, pop_back, erase)
✅ Hatékonyan kezeli a memóriát (reserve, shrink_to_fit)
✅ Könnyen bejárható és rendezhető
✅ Többdimenziós vektorokkal is működik
Ha dinamikus tömböt keresel C++-ban, a vector az egyik legjobb választás! 🚀
- vector library - Szótár.net (en-hu)
- vector library - Sztaki (en-hu)
- vector library - Merriam–Webster
- vector library - Cambridge
- vector library - WordNet
- vector library - Яндекс (en-ru)
- vector library - Google (en-hu)
- vector library - Wikidata
- vector library - Wikipédia (angol)