En namngiven uppsättning element av samma typ kallas en matris. En sådan organisation av data har många uppenbara fördelar och en nackdel - när man skapar en array är det nödvändigt att förklara dess storlek i förväg, vilket inte kan ändras på konventionellt sätt i framtiden. Lösningen på detta problem är att utveckla dynamiska matriser som kan ändra antalet element när som helst. Dessutom kan du använda både redan skapade klasser och implementera dina egna med hjälp av standardprogrammeringsverktyg för detta.
Instruktioner
Steg 1
Huvudkärnan i en dynamisk matris är att allokera minne för de data som lagras i den exakt i den storlek som den behövs för tillfället. Det är mest praktiskt att implementera denna konstruktion i form av en klass - ett omslag för en matris. Här är det nödvändigt att tillhandahålla alla funktioner som utför allokering och frigöring av minne för en matris, samt operatörer som ger åtkomst till dess element.
Steg 2
Skapa ett objekt av den dynamiska array-omslagsklassen, och konstruktören tilldelar automatiskt minne av den angivna storleken. Om, när arrayen fylls, kommer minnet för elementen att vara helt upptaget, när nästa data läggs till, utförs följande åtgärder: - all information från arrayen lagras i tillfällig lagring (extra array); - tidigare tilldelat minne är frigörs av ett speciellt kommando (gratis, radera); - minne tilldelas under matrisen med den storlek som krävs för att innehålla alla data - alla "gamla" värden placeras i den nya matrisen från den tillfälliga lagringen och en ny element läggs till.
Steg 3
Det bästa sättet att arbeta med dynamiska matriser är att använda befintliga biblioteksklasser. Ett av de vanligaste exemplen är vektorklassen. Den innehåller alla funktioner och iteratorer som är nödvändiga för att en muterbar array ska fungera. Dessutom levereras biblioteksmodulen med denna klass med vilken version av C ++ - kompilatorn som helst.
Steg 4
Inkludera det dynamiska matrisbiblioteket med kommandot #include. Använd vektorklassen för att skapa ett objekt. Att flytta genom matrisen är detsamma som i det vanliga fallet med hjälp av index. De speciella funktionerna här är funktionerna för att lägga till och ta bort nya element, samt ett antal hjälpmetoder Ett exempel på kod för att skapa och använda en dynamisk matrisvektor: # inkludera vektor; vektor int Mass; // förklaring av en dynamisk matris med element av typen intMas.push_back (10); // lägga till det första elementet - nummer 10 Mas.push_back (15); // lägga till det andra elementet - nummer 15Mas [1] = 30; // det andra elementet skrivs numret 30Mas.pop_back (); // ta bort det sista elementet i matrisen Här, när du skapar en dynamisk matris med namnet Mass, måste typen av dess element (int) anges, dimensionen anges inte i detta fall.