Hjem Personlig finansiering C ++ Programmering: Gjør veien gjennom en liste - dummies

C ++ Programmering: Gjør veien gjennom en liste - dummies

Video: You can learn Arduino in 15 minutes. 2025

Video: You can learn Arduino in 15 minutes. 2025
Anonim

C ++ programmereren iterates gjennom en matrise ved å gi indeksen til hvert element. Denne teknikken fungerer imidlertid ikke for containere som liste som ikke tillater tilfeldig tilgang. Man kan forestille seg en løsning basert på metoder som getFirst () og getNext () ; men designerne av Standard Template Library ønsket å gi en felles metode for å krysse enhver type container.

For dette definerer standardmallbiblioteket iteratoren.

En iterator er et objekt som peker på medlemmene av en beholder. Generelt støtter hver iterator følgende funksjoner:

  • En klasse kan returnere en iterator som peker til det første medlemmet i samlingen.

  • Iteratoren kan flyttes fra ett medlem til det neste.

  • Iteratoren returnerer en indikasjon når den når slutten av listen.

  • Programmet kan hente elementet påpekt av iteratoren.

Standardmallabiblioteket gir også omvendte iteratorer for å bevege seg bakover gjennom lister. Alt her om iteratorer gjelder også for omvendte iteratorer.

Koden som er nødvendig for å iterere gjennom en liste , er forskjellig fra det som er nødvendig for å krysse en vektor (for å nevne bare to eksempler). Imidlertid skjuler iteratoren disse detaljene.

Metoden begynner () returnerer en iterator som peker til det første elementet i en liste. Indirection operator * () henter en referanse til objektet peket på av iteratoren. Operatøren ++ flytter iteratoren til neste element i listen.

Et program fortsetter å øke sin vei gjennom listen til iteratoren er lik verdien som returneres av slutten () . Følgende kodestykke starter i begynnelsen av en liste over studenter og viser hvert av navnene sine:

void displayStudents (liste og studenter) {// allokere en iterator som peker til det første // elementet i listelisten:: iterator iter = studenter. begynne(); // fortsett å gå gjennom listen til // iteratoren treffer slutten av listen mens (iter! = students. end ()) {// henter Student iteratoren peker på Student & s = * iter; cout << s. sName << endl; // flytt nå iseratoren til neste element // i listen iter ++;}}

Erklæringer for iteratorer kan bli svært komplekse. Dette er sannsynligvis den beste begrunnelsen for auto -deklarasjonen introdusert med '11 standard:

for (auto iter = studenter. Begynn (); iter! = Studenter. Ende (); iter ++) {cout 

Dette erklærer iter å være en iterator av hvilken type som returneres av metodelisten:: start () , unngår de torturerte deklarasjonene som vises i den tidligere kodestykket.Hvor kult er det!

C ++ Programmering: Gjør veien gjennom en liste - dummies

Redaktørens valg

Hvordan lage Baseball Practice Fun - Dummies

Hvordan lage Baseball Practice Fun - Dummies

Som baseball trener må du ikke bare lære laget ditt grunnleggende i spillet, må du lære disse grunnleggende morsomme, slik at spillerne blir interessert og engasjert. Bruk tipsene i følgende liste for å gjøre baseballøvelsen morsom: Sørg for mange repetisjoner for hvert barn. Stopp treningen kort ...

Basisspillers ansvar i Baseball - dummies

Basisspillers ansvar i Baseball - dummies

Baseball trener er ikke bare ansvarlige for lagspillet som en hel, men for coaching spillere når de når første og tredje base i løpet av et baseballspill. Ansvaret for å coaching hver base er forskjellig. Hva en første basissjåfør gjør: Oppfordrer smeten til å kaste ned første baseline på infield hits. ...

Hvordan fantasy baseball ligaene blir scoret - dummies

Hvordan fantasy baseball ligaene blir scoret - dummies

Fantasy baseball har tre hovedspillformater som bestemmer hvordan ligaen din score punkter. Spillformatene for fantasybaseball er Rotisserie, Head-to-Head One Win og Point System. Hvert format blir scoret avhengig av ligaoppsettet. For eksempel vil 5 × 5 liga score poeng eller gevinster / tap på fem forhåndsvalgte treffstatistikk, samt fem ...

Redaktørens valg

Praktiserer dag til dag, uformell oppmerksomhet - dummies

Praktiserer dag til dag, uformell oppmerksomhet - dummies

Kan trene det når som helst. Uformell oppmerksomhet meditasjon er når du trener oppmerksomhet uten å skille ut en spesiell tid for det. Her er ti eksempler på uformell oppmerksomhet: Mindful kommunikasjon - Når du snakker eller hører på noen andre, blir du klar over lyden av ...

Forbli lekfull og lyshjerte når du praktiserer Mindfulness - dummies

Forbli lekfull og lyshjerte når du praktiserer Mindfulness - dummies

En nydelig holdning til å ha oppmerksomhet og Livet generelt er lekenhet og lethed. Hvis en meditasjon ikke virker for deg første gang eller ikke føles riktig for deg, ikke vær panikk, men tenk på opplevelsen som et eksperiment som du kan prøve igjen senere. Tilnærming oppmerksomhet som du ville et nytt spill eller ...

Redaktørens valg

Valg av resolusjonsstørrelse på et Canon EOS Rebel T3-serie kamera - dummies

Valg av resolusjonsstørrelse på et Canon EOS Rebel T3-serie kamera - dummies

For å bestemme seg for en Kvalitetsinnstilling (eller bildeoppløsningstørrelse) for Canon Rebel T3 eller T3i, den første avgjørelsen du må gjøre er hvor mange piksler du vil at bildet skal inneholde. Piksler er de små firkantede fliser hvorfra alle digitale bilder er laget; piksel er kort for bildeelement. Hvis din ...

Hvordan du lager videobilder på Rebel T7i / 800D - dummies

Hvordan du lager videobilder på Rebel T7i / 800D - dummies

Videoopplastingsfunksjonen på Canon EOS Rebel T7i / 800D fanger korte videoklipp som er sydd i et enkelt opptak, kalt et videoalbum. Du kan stille klippelengden til 8, 4 eller 2 sekunder lang (men alle klippene i et album må ha samme lengde). Med tanke på individets korthet ...