Standardmalbiblioteket (STL) er et sett med C ++ malklasser for å gi vanlige programmeringsdatastrukturer og funksjoner som lister, stabler, matriser osv. I denne STL i C ++ -artikkelen vil vi diskutere følgende pekere:
Fortsetter med denne artikkelen om STL i C ++
C ++ maler
C ++ gir oss en funksjon av maler som lar funksjoner og klasser fungere med generiske typer. Dette tillater gjenbruk av en funksjon eller klasse og lar den jobbe med mange forskjellige datatyper uten å bli omskrevet for hver enkelt.
Fortsetter med denne artikkelen om STL i C ++
Generiske funksjoner og STL
Mens du programmerer mange ganger, er det behov for å lage funksjoner som utfører de samme operasjonene, men som arbeider med forskjellige datatyper. Så for å overvinne dette problemet gir C ++ en funksjon for å lage en enkelt generisk funksjon i stedet for mange funksjoner som kan fungere med forskjellige datatyper ved å bruke malparameteren. Samlingen av disse generiske klassene og funksjonene heter Standard Template Library (STL)
Komponentene i STL som nå er en del av standard C ++ - biblioteket er definert i navneområdet std. Vi må derfor bruke direktivet om navnerom for å importere dem til vårt program.
Syntaks:
Bruker navneområde std
STL har tre komponenter
Beholdere
Algoritmer
Iteratorer
Disse tre komponentene fungerer sammen med hverandre i synergi for å gi støtte til en rekke programmeringsløsninger. Algoritme benytter iteratorer for å utføre operasjoner lagret i containere.
En container er et objekt som lagrer data i minnet på en organisert måte. Containerne i STL er implementert av malklasser og kan derfor enkelt modifiseres og tilpasses for å inneholde forskjellige typer data.
En prosedyre som brukes til å behandle dataene i containerne er definert som en algoritme. STL inneholder mange forskjellige typer algoritmer for å gi støtte til oppgaver som initialisering, søk, kopiering, sortering og sammenslåing, kopiering, sortering og sammenslåing. Algoritmer implementeres av malfunksjoner.
En iterator kan defineres som et objekt som peker på et element i en container. Iteratorer kan brukes til å flytte gjennom innholdet i containere. Iteratorer håndteres akkurat som pekere. Vi kan øke eller redusere dem. Iteratorer kobler algoritme med containere og spiller en nøkkelrolle i manipulasjonen av data som er lagret i containerne.
Fortsetter med denne artikkelen om STL i C ++
Beholdere
STL definerer ti containere som er gruppert i tre kategorier.
Beholdere | Beskrivelse | Topptekstfil | Iterator |
Vector | Det kan defineres som et dynamisk utvalg. Det gir direkte tilgang til ethvert element. | Tilfeldig tilgang | |
Liste | Det er en toveis lineær liste. Det tillater innsetting og sletting hvor som helst | Toveis | |
og | Det er dobbel kø. Tillater innsetting og sletting i begge ender. Tillater direkte tilgang til ethvert element. | Tilfeldig tilgang | |
sett | Det er en tilknyttet beholder for lagring av unike sett. Tillater rask oppslag. | Toveis | |
multisett | Det er en tilknyttet beholder for lagring av ikke-unike sett. utvalg av klasseobjekter java | Toveis | |
kart | Det er en tilknyttet beholder for lagring av unike nøkkel / verdipar. Hver nøkkel er bare tilknyttet en verdi. | Toveis | |
multikart | Det er en tilknyttet beholder for lagring av nøkkel / verdi der en nøkkel kan være assosiert med mer enn én verdi (en-til-mange-kartlegging). Det tillater en nøkkelbasert oppslag. | Toveis | |
stable | En standardstabel følger last-in-first-out (LIFO) | Ingen iterator | |
kø | En standard kø følger først-inn-først-ut (FIFO) | Ingen iterator | |
prioritetskø | Det første elementet ut er alltid elementet med høyest prioritet | Ingen iterator |
Sekvensbeholdere
Sekvensbeholdere lagrer elementer i en lineær rekkefølge. Alle elementene er relatert til hverandre ved deres posisjon langs linjen. De tillater innsetting av element, og alle støtter flere operasjoner på dem.
STL gir tre typer sekvenselementer:
- Vector
- Liste
- og
Associative containere:
De er utformet på en slik måte at de kan støtte direkte tilgang til elementer ved hjelp av nøkler. De er ikke sekvensielle. Det er fire typer
assosiative beholdere:
- Sett
- Multisett
- Kart
- Multimap
Alle de ovennevnte beholderne lagrer data i en struktur som kalles tre som letter raskt
søk, sletting og innsetting i motsetning til sekvensiell. Containersett eller multisett kan lagre forskjellige elementer og gi operasjoner for å manipulere dem ved hjelp av verdiene som tastene.
Og kart eller Multimap brukes til å lagre varer i par, den ene kalt nøkkelen og den andre
kalt verdien.
Avledede containere:
STL har tre avledede containere, nemlig stabel, kø og prioritetsvei. Disse er også kjent som containeradaptere.
Det er tre typer avledede containere:
1. Stakk
2. kø
3.Priority_quue
Stabler, kø og prioritetskø kan enkelt opprettes fra forskjellige sekvensbeholdere. De avledede beholderne støtter ikke iteratorer, og derfor kan vi ikke bruke dem til datamanipulering. Imidlertid støtter de to medlemsfunksjon pop () og push () for å implementere sletting og innsetting av operasjoner.
Fortsetter med denne artikkelen om STL i C ++
hvordan du tester en database
Algoritmer
Algoritmer er funksjoner som vanligvis kan brukes på tvers av en rekke containere for behandling av innholdet. Selv om hver container har funksjoner for sine grunnleggende operasjoner, gir STL mer enn seksti standardalgoritmer for å støtte mer utvidede eller komplekse operasjoner. Standardalgoritmer tillater oss også å jobbe med to forskjellige typer containere samtidig.
STL-algoritmer forsterker filosofien om gjenbrukbarhet. Ved å bruke disse algoritmene kan programmerere spare mye tid og krefter. For å få tilgang til STL-algoritmene, må vi inkludere i programmet vårt.
STL-algoritme, basert på arten av operasjoner de utfører, kan kategoriseres som under:
Ikke-muterende algoritmer
Muterende algoritmer
Sorteringsalgoritmer
Sett algoritmer
Relasjonsalgoritme
Fortsetter med denne artikkelen om STL i C ++
Iteratorer:
Iteratorer fungerer som pekere og brukes til å få tilgang til elementer i containeren. Vi bruker iteratorer for å flytte gjennom innholdet i containere. Iteratorer håndteres akkurat som pekere. Vi kan øke eller redusere dem i henhold til våre krav. Iteratorer kobler containere med algoritmer og spiller en viktig rolle i manipuleringen av data som er lagret i containerne. De brukes ofte til å passere fra ett element til et annet, denne prosessen kalles iterering gjennom beholderen.
Det er fem typer iteratorer:
1. inngang
2. utgang
3. fremover
4. toveis
5. tilfeldighet
Iterator | Tilgangsmetode | Bevegelsesretning | I / O-mulighet | Bemerke |
Inngang | Lineær | Bare fremover | Skrivebeskyttet | Kan ikke lagres |
Produksjon | Lineær | Bare fremover | Skriv bare | Kan ikke lagres |
Framover | Lineær | Bare fremover | Les Skriv | Kan reddes |
Toveis | Lineær | Fremover og bakover | Les Skriv | Kan reddes |
Tilfeldig | Tilfeldig | Fremover og bakover | Les Skriv | Kan reddes |
Ulike typer iteratorer må brukes med de forskjellige typer containere slik at bare
sekvens og assosierende containere får reise gjennom iteratorer. Hver type iteratorer brukes til å utføre visse funksjoner. Input og output iteratorene støtter de minste funksjonene. De kan bare brukes til å passere gjennom i en container. Forward iteratorene støtter all operasjon av input og output iteratorer og beholder også sin posisjon i containeren. En toveis iterator, mens den støtter all fremover iteratoroperasjon, gir muligheten til å bevege seg bakover i containeren.
Dermed har vi kommet til en slutt på denne artikkelen om ‘STL i C ++’. Hvis du ønsker å lære mer, sjekk ut av Edureka, et pålitelig online læringsfirma. Edurekas Java J2EE- og SOA-opplærings- og sertifiseringskurs er designet for å trene deg for både kjerne- og avanserte Java-konsepter sammen med forskjellige Java-rammer som Hibernate & Spring.
Har du spørsmål til oss? Vennligst nevn det i kommentarfeltet på denne bloggen, så kommer vi tilbake til deg så snart som mulig.