Hem Personliga finanser C ++ Programmering: Gör din väg igenom en lista - dummies

C ++ Programmering: Gör din väg igenom en lista - 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 ++-programmeraren iterates genom en array genom att ge indexet för varje element. Denna teknik fungerar emellertid inte för behållare som lista som inte tillåter slumpmässig åtkomst. Man kan föreställa sig en lösning baserad på metoder som getFirst () och getNext () ; Designarna i Standard Template Library ville emellertid ge en gemensam metod för att korsa alla typer av behållare.

Därför definierar standardmallbiblioteket iteratorn.

En iterator är ett objekt som pekar mot medlemmarna av en behållare. I allmänhet stöder varje iterator följande funktioner:

  • En klass kan returnera en iterator som pekar på den första medlemmen i samlingen.

  • Iteratorn kan flyttas från en medlem till en annan.

  • Iteratorn returnerar en indikation när den når slutet av listan.

  • Programmet kan hämta elementet pekat på av iteratorn.

Standardmallabiblioteket ger också omvänd iteratorer för att flytta bakåt genom listor. Allt här om iteratorer gäller lika för omvänd iteratorer.

Koden som behövs för iterering via en lista skiljer sig från det som behövs för att korsa en vektor (för att bara nämna två exempel). Men iteratorn döljer dessa detaljer.

Metoden börjar () returnerar en iterator som pekar på det första elementet i en lista. Indirection operatören * () hämtar en referens till det objekt som pekas på av iteratorn. Operatorn ++ flyttar iteratorn till nästa element i listan.

Ett program fortsätter att öka sin väg genom listan tills iteratorn är lika med värdet som returneras av slutet () . Följande kodstämpel börjar i början av en lista med studenter och visar var och en av deras namn:

void displayStudents (lista och studenter) {// allokera en iterator som pekar på det första // elementet i lististan:: iterator iter = studenter. Börja(); // fortsätt att springa igenom listan tills // iteratorn träffar slutet av listan medan (iter! = students. end ()) {// hämta Student iteratorn pekar på Student & s = * iter; cout << s. sName << endl; // flytta nu isäratorn till nästa element // i listan iter ++;}}

Förklaringar för iteratorer kan bli mycket komplexa. Detta är förmodligen den bästa motiveringen för auto -deklarationen som introducerades med '11-standarden:

för (auto iter = studenter. Begin (); iter! = Studenter. Slut (); iter ++) {cout 

Detta förklarar att det är en iterator av vilken typ som helst som returneras av metodlistan:: begin () , undviker de torterade deklarationerna som visas i det tidigare kodbiten.Hur coolt är inte det!

C ++ Programmering: Gör din väg igenom en lista - dummies

Redaktörens val

Hitta hur du betalar webbplatser i online dating - dummies

Hitta hur du betalar webbplatser i online dating - dummies

Du får vad du betalar för I livet ingår Internet-dating webbplatser. Till skillnad från gratis webbplatser, med lönesidor har du inte huvudvärk på oändliga reklammeddelanden som skriker i ditt ansikte. Dessutom är omfattningen av täckning och tillgängliga funktioner bred och robust. Solid tillsyn tillhandahålls (för att gräva ut wackos) och lämpliga hinder ...

Dating för Dummies Cheat Sheet - dummies

Dating för Dummies Cheat Sheet - dummies

Dating behöver inte vara nervös, men det kräver förberedelse . Du måste göra en uppriktig själsökning så att du är redo att vara ärlig, öppen och uppmärksam. Du behöver en stark känsla för dina dejtingförväntningar så att du tydligt kan kommunicera vad du letar efter utan att ställa in baren så hög att ingen ...

Få passar för dating igen efter 50 - dummies

Få passar för dating igen efter 50 - dummies

Copyright © 2014 AARP All rights reserved. Du behöver inte vara frisk och frisk efter 50, men det hjälper säkert om du är. Om du inte är något av dessa saker, behöver du inte ge upp och tycker att det är för sent att komma dit. Många börjar träningsregler så sent som ålder ...

Redaktörens val

ÄR ett au pair rätt för din familj? - dummies

ÄR ett au pair rätt för din familj? - dummies

Det är viktigt att undersöka dina specifika familjeförhållanden för att avgöra om ett au pair är rätt barnomsorg för din familj. Du kanske bestämmer dig för att anställa ett au pair i stället för daghem, barnbarn eller barnpassare om du vill utsätta din familj för en ny kultur. Är ...

Online-verktyg för familjebudgetar - dummies

Online-verktyg för familjebudgetar - dummies

Vissa familjer kan tycka att den mest användbara aspekten av att bo i en värld med nästan oändliga onlineverktyg innebär att kunna budgetera för familjen med dessa verktyg. Följande tre onlinetjänster erbjuder familjer ett sätt att organisera familjeutgifter online, dela åtkomst till säkra konton och eliminera några av papperet ...

Barn som Online Entreprenörer - Dummies

Barn som Online Entreprenörer - Dummies

Levande i en digital värld tillåter barnen obegränsade möjligheter när det gäller entreprenörskap. Denna digitala tidsålder ger barnen en unik färdighetssats med möjlighet att dela den färdigheten med andra och lägga till "onlineföretagare" till listan över möjliga efterskolor och sommarjobb som finns tillgängliga för barn idag. Spelskapande Ett område där digitalt ...

Redaktörens val

Word 2007 Mail Merge - Steg 3: Byggnadsrekord - dummies

Word 2007 Mail Merge - Steg 3: Byggnadsrekord - dummies

Efter att ha definierat de fält du behöver för din Word 2007-postfusion, är nästa steg att slutföra adresslistan. För att göra det skapar du en lista över poster genom att ange data för varje fält i varje post. Detta händer i dialogrutan Ny adresslista. Kom ihåg att fält är kolumner och ...

Word 2007 Mail Merge - Steg 5: Final Merge - dummies

Word 2007 Mail Merge - Steg 5: Final Merge - dummies

Med sammanfogningsfälten infogad i huvudversionen av Word 2007-dokumentet och adresslistan stannar, är du redo att starta din mailfusion! Spara huvuddokumentet. Klicka på knappen Förhandsgranska resultat. Fälten i huvuddokumentet försvinner! De ersätts av information från den första posten i adresslistan. Så här ...