Hjem Personlig finansiering C ++ Programmering: Lav din vej gennem en liste - dummies

C ++ Programmering: Lav din vej gennem en liste - dummies

Video: Writing 2D Games in C using SDL by Thomas Lively 2024

Video: Writing 2D Games in C using SDL by Thomas Lively 2024
Anonim

C ++-programmereren gentager sig gennem et array ved at give indekset for hvert element. Denne teknik virker imidlertid ikke for containere som liste , der ikke tillader tilfældig adgang. Man kunne forestille sig en løsning baseret på metoder som getFirst () og getNext () ; Designerne af Standard Template Library ønskede imidlertid at levere en fælles metode til at krydse enhver form for beholder.

Til dette definerer standardskabelonbiblioteket iteratoren.

En iterator er et objekt, der peger på medlemmerne af en beholder. Generelt understøtter hver iterator følgende funktioner:

  • En klasse kan returnere en iterator, der peger på det første medlem af samlingen.

  • Iteratoren kan flyttes fra et medlem til det næste.

  • Iteratoren returnerer en indikation, når den når slutningen af ​​listen.

  • Programmet kan hente elementet påpeget af iteratoren.

Standardskabelonbiblioteket giver også omvendte iteratorer til at bevæge sig baglæns gennem lister. Alt her om iteratorer gælder lige for omvendte iteratorer.

Koden, der er nødvendig for at gentage gennem en liste , er forskellig fra den, der er nødvendig for at krydse en vektor (for blot at nævne to eksempler). Imidlertid skjuler iteratoren disse detaljer.

Metoden begynder () returnerer en iterator, der peger på det første element i en liste. Indirection operatoren * () henter en henvisning til objektet påpeget af iteratoren. Operatøren ++ flytter iteratoren til det næste element i listen.

Et program fortsætter med at øge sin vej gennem listen, indtil iteratoren er lig med den værdi, der returneres af slutningen () . Følgende kodestykke starter i starten af ​​en liste over studerende og viser hver af deres navne:

void displayStudents (liste og studerende) {// allokere en iterator, der peger på det første // element i listen listen:: iterator iter = studerende. begynde(); // fortsæt med at springe igennem listen, indtil // iteratoren rammer slutningen af ​​listen, mens (iter! = students. end ()) {// henter Student iteratoren peger på Student & s = * iter; cout << s. sName << endl; // nu flytte iteratoren over til det næste element // i listen iter ++;}}

Erklæringer til iteratorer kan blive meget komplekse. Dette er nok den bedste begrundelse for auto erklæringen introduceret med '11 standard:

til (auto iter = studerende. Start (); iter! = Studerende. Ende (); iter ++) 

Dette erklærer iter at være en iterator af hvilken type som helst, returneres af metodelisten:: start () , undgå de torturerede erklæringer vist i den tidligere kodestykke.Hvor sej er det!

C ++ Programmering: Lav din vej gennem en liste - dummies

Valg af editor

Routingprotokollvalgskriterier - dummies

Routingprotokollvalgskriterier - dummies

Folk bruger to grundlæggende metoder til klassificering af ruteprotokoller - hvor de bruges og af hvordan de beregner routing. Du kan se, hvordan du vælger protokoller baseret på, hvor du planlægger at bruge dem, måden protokollen håndterer data på, og hvordan din router vælger hvilken protokol der skal bruges, når mere end en ...

Indstilling af Cisco Device Timeouts - dummies

Indstilling af Cisco Device Timeouts - dummies

Uden at indstille timeout-indstillinger for Cisco Device Privileged EXEC-tilstand, dine sessioner forbliver åbne på ubestemt tid. Dette er især farligt for konsolporten. Uden timeout parametre aktiveret, hvis administratoren ikke logger ud, har en indtrenger adgang og ingen problemer får forhøjede tilladelser. For at undgå denne potentielt farlige situation behøver du kun skrive a ...

Router Ethernet-interfacekonfiguration - dummies

Router Ethernet-interfacekonfiguration - dummies

Du starter processen med at konfigurere router Ethernet-grænseflader ved at foretage en fysisk forbindelse til din router. Når du har etableret forbindelsen, kan du fortsætte med den grundlæggende konfiguration af Ethernet-, Fast Ethernet- eller Gigabit Ethernet-forbindelser. Tilslutning til din router For at starte din konfiguration skal du oprette forbindelse til din router og komme ind i ...

Valg af editor

Med fokus på nogle hurtige løsninger til fotofile - dummier

Med fokus på nogle hurtige løsninger til fotofile - dummier

På trods af alle kameraproducenters forsøg på at gør fotografering idiotsikker, vi laver alle stadig mindre end perfekte billeder. Nogle gange er vi problemet - vi er for tætte eller for langt væk, eller kan ikke finde ud af, hvordan du bruger kameraets tåbebeskyttelsesfunktioner. Nogle gange er problemet, at virkeligheden nøjagtigt nægter at overholde vores forventninger: Himlen er ...

Lær at kende dine Manga Studio Layer Typer - Dummies

Lær at kende dine Manga Studio Layer Typer - Dummies

Manga Studio giver et udvalg af lag typer til brug i dit arbejde. Når du lærer at forstå og forstå, hvordan lag fungerer, vil du spekulere på, hvordan du nogensinde har arbejdet uden dem. Her er en introduktion til, hvad Manga Studio har til opbevaring for dig i sin lag lineup: Raster Layer: Dette er det grundlæggende ...

Få dit mobilwebsted tildelt på sociale bogmærker - dummies

Få dit mobilwebsted tildelt på sociale bogmærker - dummies

Populariteten af ​​websider med antallet af stemmer, de får. Resultatet er, at disse websteder er gode ressourcer til folk, der ønsker at holde øje med, hvad der er populært online. De fleste tilbyder speciel software, der gør det nemt for alle at stemme på et websted. Få dit websted opført ...

Valg af editor

Automatisk opdatering af din journal i Outlook 2000 - dummies

Automatisk opdatering af din journal i Outlook 2000 - dummies

Stardat 2001: På Star Trek, Virksomheden gør trofast daglige poster i kaptajnens log. Kaptajnen registrerer oplysninger om de planeter, besætningen har udforsket, udlændinge, de har kæmpet, og de bizarre fænomener, de har observeret ud i det dybe rum, hvor ingen er gået før! Nu er det din tur. Bare ...

Slet og gendan kontakter i Outlook - dummies

Slet og gendan kontakter i Outlook - dummies

Med Outlook, du behøver ikke at rive sider ud af en papir adressebog for at slippe af med en persons oplysninger; bare slet kontakten. Slettede kontakter går til mappen Slette emner i Outlook, indtil næste gang du tømmer mappen Slette elementer, så du kan hente dem derfra, hvis du laver ...