set stl
Lär dig snabbt SET i STL med enkla exempel.
Vi kommer att ta en djupgående titt på STL-behållaren - uppsättningar, här i den här handledningen. Uppsättningar är associerande behållare med unika element i en specifik ordning.
Värdet på ett element i uppsättningen är också nyckeln som används för att komma åt det. Alla element i uppsättningen måste vara unika. Vi kan inte ändra elementen i uppsättningen när de har infogats. Vi kan dock infoga eller ta bort elementen.
=> Kolla här för fullständig C ++ GRATIS träningsserie.
Vad du kommer att lära dig:
SET I STL
För att implementera set måste vi inkludera rubriken i vårt program.
bästa programvaran för virtuell maskin för Windows 10
#include
Vi kan förklara en uppsättning enligt följande:
set myset;
Till exempel,om vi vill ha en uppsättning, myset av ett element med heltalstyp, kan vi deklarera uppsättningen som:
set myset;
Funktioner på set
Den uppsatta behållaren stöder också liknande operationer som en karta som vi redan har diskuterat. Följande är några av de grundläggande åtgärder som stöds av set.
- Börja : Återställer iteratorn till det första elementet i uppsättningen.
- slutet : Återställer iteratorn till det element som följer det sista elementet i uppsättningen.
- Föra in : Infogar ett nytt element i uppsättningen.
Insats för uppsättningen har tre varianter:
-
-
- infoga (element): Detta infogar elementet direkt i uppsättningen och ordnar om uppsättningen.
- infoga (position, ledtråd): Här anger vi positionen för att infoga elementet.
- infoga (iterator.begin (), iterator.end ()): I denna variation kan vi direkt infoga intervallet i uppsättningen som en matris eller en annan uppsättning.
-
- radera : Tar bort ett element från uppsättningen.
- storlek : Returnerar storleken på uppsättningen.
- max_storlek : Returnerar den maximala storleken som enheten kan hålla.
- tömma : Returnerar om uppsättningen är tom.
- klar : Tar bort alla element från uppsättningen.
- hitta : Hitta ett element i uppsättningen. Om ett element hittas returnerar det iteratorn till det elementet i uppsättningen. Om den inte hittas returnerar den en iterator till slutet av uppsättningen.
Nedan följer ett program som visar användningen av några viktiga funktioner i SET.
#include #include #include using namespace std; int main() { set myset; myset.insert(140); myset.insert(130); myset.insert(160); myset.insert(120); cout<<'
Size of myset: '< Produktion:
Storlek på myset: 4
Set myset är: 120 130 140 160
Efter att ha satt in 100 är den inställda myset: 100 120 130 140 160
Efter att ha satt in array arr är myset: 100110120130140150160
Efter borttagning av element mindre än 130, myset: 130 140 150 160

Som visas i utgången ovan skapar vi en uppsättning med en enkel infogningsfunktion.
Därefter infogar vi element 100 i uppsättningen med en annan variant av infogningsfunktionen genom att passera iteratorreferens och elementvärde 100. Vi ser att när insatsen är klar omordnas uppsättningen och elementens ordning bibehålls.
Därefter infogar vi en array {110,150,150} med infogningsfunktionen. Om du ser den inställda utgången visas efter att du har infogat en matris ser vi att endast ett värde på 150 anges i uppsättningen. Detta beror på att alla element i uppsättningen är unika.
Vi visar också uppsättningens storlek. Därefter hittar vi elementen som är mindre än 130 med hjälp av sökfunktionen och sedan raderar funktionen för att ta bort dessa element. Sedan visar vi den resulterande uppsättningen.
Det här handlar om den inställda behållaren. Därefter kommer vi att diskutera multiset vilken en förlängning av den uppsatta behållaren.
Multiset
En multiset är en associerande behållare som liknar uppsättningen i alla aspekter förutom en skillnad, dvs. flera element kan ha samma värde.
Deklarationen för multiset är följande:
vad är den bästa youtube till mp3-omvandlaren
multiset mset;
Ett flersats av heltalselement kan deklareras som:
multiset mset;
Olika operationer som stöds av multiset liknar de som stöds av set.
Nu kommer vi direkt att diskutera ett multisetsexempel som demonstrerar den operation det använder.
#include #include #include using namespace std; int main() { multiset myset; myset.insert(11); myset.insert(13); myset.insert(13); myset.insert(10); cout<<'
Size of myset: '< Produktion:
Storlek på myset: 4
Efter att ha satt in fyra element är multiset myset: 10 11 13
13
Efter att 15 har satts in är multiset myset: 10 11 13 13 15
Efter borttagning av element mindre än 15, myset: 15
Skärmdump av utdata ges nedan:

Som visas i ovanstående utmatning anger vi initialt fyra element i multiset varav två är desamma. Men till skillnad från en uppsättning infogas dessa element framgångsrikt i multiset. Sedan sätter vi in ett annat element 15 genom att tillhandahålla position genom en iterator, som framgångsrikt har införts.
Därefter hittar vi element mindre än 15 i multiset- och samtalsradefunktionen på dessa element. Slutligen visar vi multiset.
Obeställd uppsättning
Hittills har vi diskuterat set och multiset i denna handledning.
Medan uppsättningen är en ordnad sekvens av unika nycklar, har vi en annan associerande behållare som kallas 'oordnad uppsättning' som är en uppsättning nycklar eller element som lagras i valfri ordning. Detta innebär att elementen i den oordnade uppsättningen är 'oordnade'.
På samma sätt som en oordnad karta implementeras den oordnade uppsättningen också med hjälp av en hash-tabell där tangenterna hashas till index för hash-tabellen. På grund av användningen av en hashtabell är det inte möjligt att behålla ordningen på element i motsats till den uppsättning som använder en balanserad trädstruktur.
Rubriken för implementering av oordnad uppsättning är.
#include
Vi förklarar en oordnad karta av heltalstyp enligt följande:
Unordered_set uset;
Operationer som stöds av unordered_set liknar de som stöds av unordered_map som diskuteras i våra handledning på karta.
Nedan följer ett exempel som visar de olika operationerna på unordered_set.
#include #include using namespace std; int main() { unordered_set uset; unordered_set :: iterator it; for(int i=0;i<5;i++){ uset.insert(i+2); } cout<<'
Size of uset: '< Produktion:
Användningsstorlek: 5
Element i oordnad uppsättning är: 99 39 6 5 26 4 3 13 2
Hittad nyckel = 13
umap bucket_count: 11
bucket_size: 2
Skärmdump av ovanstående utdata ges nedan.

Som visas i ovanstående utdata infogar vi först 5 element i den oordnade uppsättningen och infogar sedan ytterligare 4 element som visar användningen av insatsfunktionsvariationer. Sedan visar vi innehållet i den oordnade uppsättningen.
Därefter använder vi sökfunktionen för att hitta om nyckeln = 13 finns i den oordnade uppsättningen eller inte.
Efter detta visar vi ytterligare två funktioner 'bucket_count' och 'bucket_size'. Dessa funktioner är relaterade till den interna implementeringen av den oordnade kartan.
Den här behållaren stöder också andra iteratorfunktioner och funktioner som max_size, clear, radera, tom, etc. som liknar andra STL-containrar.
Slutsats
Med detta har vi kommit till slutet av vår handledning om SET i STL.
Vi hoppas att ämnena som ingår i denna STL-handledning hjälper dig att förstå STL och dess olika behållare.
hur man hittar nätverkssäkerhetsnyckeln för wifi
=> Läs igenom den populära C ++ träningsserien här.
Rekommenderad läsning
- Prioritetskö i STL
- Listor i STL
- KARTOR I STL
- Travar och köer i STL
- Iteratorer i STL
- Arrays i STL
- Strängar, par och tuppar i STL
- Algoritmer i STL