standard template library
En komplett oversikt over standard malbibliotek (STL):
Standard malbibliotek (STL) av C ++ er en samling malklasser som gir datastrukturer som matriser, vektorer, kø osv. STL er et bibliotek som består av containere, algoritmer og iteratorer.
Ettersom STL består av en samling malklasser, er det et generalisert bibliotek som er uavhengig av datatyper.
=> Les gjennom den omfattende C ++ Training Tutorial Series her.
Hva du vil lære:
sql spørsmål intervju spørsmål og svar pdf
Komponenter av STL
STL består hovedsakelig av følgende komponenter som er nevnt nedenfor:
# 1) Beholdere
En container er en samling objekter av en bestemt type datastruktur. I STL har vi forskjellige typer containerklasser som Array, vector, kø, deque, liste, kart, sett osv. Disse containerne er generiske og implementeres som klassemaler.
Beholdere er dynamiske og kan brukes til å holde forskjellige typer gjenstander.
# 2) Algoritmer
Algoritmer er metodene eller funksjonene som virker på containere. Ved å bruke algoritmer levert av STL, kan vi ha metoder for å søke, sortere, modifisere, transformere eller initialisere innholdet i containerklasseobjekter.
Algoritmer levert av STL har innebygde funksjoner som direkte kan operere på kompleks datastruktur i stedet for å måtte skrive algoritmene selv.
For eksempel, revers () -funksjon i STL kan brukes til å reversere den koblede listen.
hvorfor er standard gateway ikke tilgjengelig
# 3) Iteratorer
Iteratorer er det veldig viktige og kjennetegn ved STL. Iteratorer er konstruksjonene som brukes til å krysse gjennom containerobjektene. I likhet med indekser som vi bruker for å gå gjennom matriser, reagerer Iteratorer på objekter i beholderklasse og kan brukes til å gå gjennom dataene.
Beholdere
Beholdere lagrer objekter og data. De er i utgangspunktet malbaserte generiske klasser.
Beholdere i STL er delt inn i følgende typer:
# 1) Sekvensielle containere
Beholdere som kan nås på en sekvensiell eller lineær måte sies å være sekvensielle beholdere.
Arrays, Vectors, Lists, Deques er STL-containere som lagrer data lineært og kan nås på en sekvensiell måte.
# 2) Associative Containers
Assosiative containere er containere som implementerer sorterte datastrukturer. Disse containerne er raske å søke. Noen av Eksempler av assosierende containere er Map, Set, MultiMap, Multiset, etc. Disse containerne er vanligvis implementert på en nøkkel / verdipar måte.
# 3) Containeradoptere
Beholderadaptere er sekvensielle beholdere, men de implementeres ved å tilby et annet grensesnitt. Dermed klassifiseres containere som en kø, deque, stack og prioritet-kø som containere.
Iteratorer
Iteratorer er konstruksjoner som vi bruker til å krysse eller gå gjennom containere i STL. Iteratorer er veldig viktige i STL da de fungerer som en bro mellom algoritmer og containere. Iteratorer peker alltid på containere og faktisk algoritmer faktisk, opererer på iteratorer og aldri direkte på containere.
Iteratorer er av følgende typer:
- Inngangsinteraktører: Enkleste og brukes mest i single-pass algoritmer.
- Utgangsinteraktører: Samme som input iterators, men ikke brukt til traversering.
- Toveis Iteratorer: Disse iteratorene kan bevege seg i begge retninger.
- Fremover Iteratorer: Kan bare brukes fremover, ett trinn av gangen.
- Tilfeldige tilgangsinteraktører: Samme som pekere. Kan brukes til å få tilgang til ethvert element tilfeldig.
Algoritmer
Algoritmer er et sett med funksjoner eller metoder levert av STL som virker på containere. Disse er innebygde funksjoner og kan brukes direkte med STL-containere og iteratorer i stedet for å skrive våre egne algoritmer.
STL støtter følgende typer algoritmer:
- Søker algoritmer
- Sorteringsalgoritmer
- Endring eller manipulering av algoritmer
- Ikke-modifiserende algoritmer
- Numeriske algoritmer
- Min / maks algoritmer
Som hver av algoritmetyper antyder, kan disse algoritmene brukes til å oppnå ulik funksjonalitet i STL-containere som å søke, sortere, transformere dataene i containerne, finne min / maks verdi osv.
Konklusjon
Dette er den korte introduksjonen av Standardmalbiblioteket. I våre kommende opplæringsprogrammer vil vi lære mer om hver av containerne, algoritmene og iteratorene.
=> Sjekk Komplett C ++ GRATIS treningsserie her.