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

Hur man tar bort eller minimerar webbdelar i SharePoint 2013 - dummies

Hur man tar bort eller minimerar webbdelar i SharePoint 2013 - dummies

Du har två alternativ för att ta bort en webbdel från din SharePoint-sida - stängning eller radering. Att stänga en webbdel lämnar webbdelen på sidan så att du kan aktivera den igen för framtida användning. Att ta bort webbdelen tar bort webbdelen från din sida (men tar inte bort den från SharePoint). Till ...

För att ladda ner Apps från SharePoint Store - dummies

För att ladda ner Apps från SharePoint Store - dummies

Förutom de appar som följer med SharePoint, Du kan också lägga till appar från tredje part. Dessa tredjepartsprogram visas i SharePoint-butiken. Om du använder SharePoint Online har du tillgång till hela butiken. Om du använder SharePoint On-Premise kan dina lokala IT-administratörer ha låst ned de appar som ...

Hur man visar visningar via webbdelar i SharePoint 2013 - dummies

Hur man visar visningar via webbdelar i SharePoint 2013 - dummies

Du vill visa din SharePoint appdata med annan text och webbdelar på flera platser, till exempel hemsidor för hemsida, webbsidor eller publiceringssidor. I dessa situationer vill du inte att dina användare ska interagera med själva appen med alla redigeringsalternativ. Du vill bara att de ska se flera ...

Redaktörens val

Vad är Kik? - dummies

Vad är Kik? - dummies

Grundades 2009, är Kik en gratis snabbmeddelandeprogram utvecklad från Kik Interactive. Kik är tillgängligt på Android, Windows Phone och iOS-enheter. Applikationen är modellerad efter BlackBerry Messenger. Kik använder den befintliga smarttelefonens dataplan eller Wi-Fi för att skicka och ta emot meddelanden, videoklipp, foton, mobila webbsidor, skisser och annat innehåll. ...

ÖVersätt Twitter Slang och Jargon - dummies

ÖVersätt Twitter Slang och Jargon - dummies

Diskussioner om och om Twitter är fulla med alla slags förkortningar och jargong som kan förvirra nya Twitter-användare. Vad talar folk om (och tweeting) om? Följande ordlista definierar några av de förvirrande förkortningarna och Twitter-lingo du kan komma över. AFAIK: Så vitt jag vet. bot: Ett konto som drivs av en ...

Vad är Letgo? - dummies

Vad är Letgo? - dummies

Letgo är en mobil klassificerad applikation som tillåter användare att köpa från och sälja till andra lokalt. Du kan använda Letgo till fyndbutik eller slutligen släppa på saker som samlar damm runt ditt hus. I likhet med andra classifieds-applikationer som Wallapop eller Craigslist kommer säljare att skicka ett objekt och vänta på en köpare ...

Redaktörens val

Vanliga kodningsfel - dummies

Vanliga kodningsfel - dummies

Koden fungerar inte? Här är några vanliga misstag som kan gå upp till och med även den mest erfarna kodaren. Om din kod inte kommer att köras, försök att springa ned den här checklistan för att se om du har några av dessa fel: Har inte en slutlig HTML-tagg efter varje öppnande HTML-tagg . Saknade parentes i ...

Grundläggande kodningsordförråd - dummies

Grundläggande kodningsordförråd - dummies

Kodning har ett omfattande vokabulär som för lekmän kan verka som ogenomtränglig technobabble. Oavsett om du läser kodningsrelaterad artikel online eller pratar med en utvecklare på jobbet hörs det kanske ord som du inte har hört förut eller som har en annan mening i en kodande kontext. Här är några vanliga ordförrådsord att veta: Allmänt ...