U programskom jeziku C++, često se susrećemo sa potrebom za korištenjem zbirki jedinstvenih elemenata. Jedan od popularnih načina za postizanje toga je korištenje unordered_set, strukture podataka koja omogućava brzo pretraživanje, umetanje i brisanje elemenata. U ovom tekstu, istražit ćemo nekoliko različitih tehnika za kreiranje i popunjavanje unordered_set-a, koristeći razne pristupe.
- Kreiranje pomoću konstruktora sa podrazumijevanim vrijednostima
- Kreiranje pomoću početnih vrijednosti
- Kopiranje postojećeg unordered_set-a
- Korištenje ranga elemenata
- Zaključak
- 1. Inicijalizacija s korištenjem podrazumijevanog konstruktora
- undefined
- [C++] STL: Map, Multimap, Unordered_map и Unordered_multimap
Kreiranje pomoću konstruktora sa podrazumijevanim vrijednostima
Najjednostavniji način za kreiranje unordered_set-a je upotreba konstruktora sa podrazumijevanim vrijednostima. Ovaj pristup podrazumijeva stvaranje praznog skupa koji je spreman za dodavanje elemenata kasnije.
std::unordered_set mojSet;
Ovo je osnovna forma koja koristi konstruktor bez argumenata. Nakon kreiranja, možemo dodavati elemente pomoću metoda poput insert ili emplace.
Kreiranje pomoću početnih vrijednosti
Druga metoda uključuje kreiranje unordered_set-a i njegovu inicijalizaciju sa nizom početnih vrijednosti. Ovaj pristup omogućava efikasno postavljanje početnih elemenata direktno pri stvaranju skupa.
std::unordered_set mojSet = {1, 2, 3, 4, 5};
Korištenjem ovakvog oblika, unordered_set je odmah spreman za upotrebu sa definisanim elementima, čime se skraćuje potreba za dodatnim koracima umetanja elemenata nakon stvaranja skupa.
Kopiranje postojećeg unordered_set-a
Još jedan koristan način za stvaranje novog unordered_set-a je kopiranje postojećeg skupa. Ovo se postiže korištenjem konstruktora koji prima drugi unordered_set kao argument.
std::unordered_set originalniSet = {10, 20, 30};
std::unordered_set kopiraniSet(originalniSet);
Ovaj pristup je posebno koristan kada želimo kreirati novi skup sa istim elementima kao i postojeći, zadržavajući jedinstvenost svakog elementa.
Korištenje ranga elemenata
Inicijalizacija sa rangom elemenata omogućava kreiranje unordered_set-a sa podskupom elemenata iz postojećeg kontejnera. Ovaj pristup koristi par iteratora kao argumente za konstruktor.
std::vector vektor = {100, 200, 300, 400};
std::unordered_set setIzVektora(vektor.begin(), vektor.end());
Ovakva forma je korisna kada imamo kolekciju elemenata u drugom kontejneru i želimo ih prebaciti u unordered_set bez dupliranja ili dodatnog umetanja.
Zaključak
Postoji mnogo različitih metoda za stvaranje i popunjavanje unordered_set-a u C++ programu. Korištenjem konstruktora sa podrazumijevanim vrijednostima, početnih vrijednosti, kopiranjem postojećih skupova ili korištenjem ranga elemenata, možemo fleksibilno i efikasno raditi sa jedinstvenim kolekcijama podataka. Svaka od ovih tehnika ima svoje prednosti i može biti prilagođena specifičnim potrebama programskog zadatka.
1. Inicijalizacija s korištenjem podrazumijevanog konstruktora
U ovom dijelu članka razmotrit ćemo prvi metod inicijalizacije, koristeći podrazumijevani konstruktor. Ova tehnika omogućuje stvaranje jedinstvenog skupa s osnovnim postavkama koje su već ugrađene u jezik. Fokusiramo se na način kako pristupiti inicijalizaciji skupa s minimalnim naporom, koristeći već dostupne mogućnosti jezika.