Principer för en enkel C ++ Sekvens Container Container Library sekvenser i C ++ Förenklat - Del 2 Division 1 Inledning Detta är del 2 i min serie, Containrar bibliotekssekvenser i C ++, förenklad. Du bör ha läst del 1 innan du läser denna del. I denna del av serien, tittar vi på principerna för en enkel C ++ Sequence Container. Obs: Om du inte kan se koden, eller om du tror att något saknas (bruten länk, bild frånvarande), bara att kontakta mig på [email protected]. Det vill säga, kontakta mig för minsta problem du har om vad du läser.
Vissa regler om förteckningen jag kommer att skapa en enkel C ++ container korrekt, i nästa del i serien. Det finns vissa regler för uppsättningen i det dynamiska minne som du bör komma ihåg eller lära. Vi tittar på dem för resten av den här guiden. Skapa en Array i Dynamiskt minne Följande uttalande, kopieras från klassen konstruktören ovan skapar en array i dynamiskt minne. T * listPtr = new T [noIniCells]; T är en platshållare för objekttypen om du arbetar med en mall. Om du inte hade att göra med en mall, då T skulle säga, int eller röding eller flyta, etc.
Åtkomst ett element för en int array, om du vill det nya värdet av ett element, säger index 3 till 17, du skulle skriva uttalandet: listPtr [3] = 17; Du använder pekaren och hakparenteserna; du inte föregå pekaren med * för värdet; hakparenteserna ta hand om det. Av den enkla behållaren, ska vi ha ett något annorlunda sätt att komma åt värden. Öka storleken på Dynamic Array Du kan öka storleken, ett element i taget. För att göra detta, använd pekaren med index för den förväntade nästa element för att komma till nästa element.
Om ovanstående arrayen har 5 element från början, betyder det högsta indexet är 4. Om gruppen är för Ints, att öka storleken på arrayen med en och ge värdet 26 till det nya elementet, skriver uttalande: listPtr [5 ] = 26; Är Dynamiskt minne tillgängligt? Dynamiskt minne (gratis butik) är kanske inte tillgängliga när du vill ha den. Så du måste kontrollera om dynamiskt minne är tillgängligt innan du skapar arrayen och även kontrollera om det är tillgängligt innan du lägger till ett nytt element.
Följande kod kommer att kontrollera och skapa den första listan för ovanstående konstruktör: T * listPtr = new T [noIniCells]; if (! listPtr = null) {for (int i = 0; i {listPtr [i] = defaultObj;}} else {cout} Om det inte finns något dynamiskt minne, begäran om den (nya T [noIniCells]) returnerar NULL . Så efter att försöka skapa listan kan du ko