*   >> Læs Uddannelse artikler >> science >> programming

Principper for en simpel C ++ Sequence Container

ke tilrådeligt at flytte markøren af ​​array. Du kan have mere end én pointer peger på den samme adresse i hukommelsen; det er du kan have pejlemærker af forskellige navne, der peger på den samme adresse. I ovenstående kode, vi ønskede adressen på den sidste (nyligt tilføjede) element. For at løse ovennævnte problem (indeks problem), er det godt at have en pointer af et andet navn, der vil scanne dit objekt for dig at få den adresse, du er på udkig efter. Denne adresse kan returneres eller gemmes et sted i et objekt (id).

På den måde markøren af ​​array (array navn) vil ikke ændre sin position og indeksering anvende array navn forbliver OK. Frygten for indeksering problemet vil ikke være der. For ovenstående kode, vil den returnerede eller gemt adresse derefter anvendes for at se om dynamiske hukommelse var tilgængelig. Du har brug for en klasse (et objekt instantieret fra det), der vil have den scanning pointer og derefter vende tilbage eller gemme den adresse, du ønsker. Et sådant objekt kan kaldes en iterator. I praksis iteratorer for beholderne beholderens Library er mere komplekse end dette.

Vi må ikke gå ind i nogen af ​​en sådan kompleksitet her. Følgende kode giver klassen af ​​en simpel iterator for ovennævnte problem: class Iter {public: int * retPtr; ITER (int INDX, int * PTR) {int * iterPtr = ptr; for (int i = 0; i ++ iterPtr;} retPtr = iterPtr;} int * retrnPtr () {return retPtr,}};.. Der er én ejendom, og to metoder i klassen Den første metode er konstruktøren Det har som parametre et indeks af elementet, hvis pointer, du leder efter, og markøren til den dynamiske hukommelse array.

I den første opgørelse inde konstruktøren, er markøren af ​​array, som peger på det første element i arrayet tildelt til en nye pointer i en initialisering redegørelse. Det er denne nye pointer, inkrementeres og ikke markøren til arrayet. Den for-løkke i konstruktøren forøger den nye pointer et antal gange svarende til indekset position (INDX) sendes som argument. Den sidste sætning i konstruktøren tildeler den endelige øges pointer til ejendommen af ​​klassen. Den anden metode i klassen, returnerer denne sidste øges værdi. Det er sådan vores iterator fungerer.

Det tager en ny pointer til en position, og overlader det der, og ikke tage det tilbage til sin startposition. Praktiske iteratorer arbejder på en lignende måde. Med praktiske iteratorer, hvis du ønsker at ændre placeringen af ​​den iterator (markøren), er du nødt til at flytte den fra den holdning, det var t

Page   <<  [1] [2] [3] [4] >>
Copyright © 2008 - 2016 Læs Uddannelse artikler,https://uddannelse.nmjjxx.com All rights reserved.