Pomenovaná množina prvkov rovnakého typu sa nazýva pole. Takáto organizácia údajov má veľa zjavných výhod a jednu nevýhodu - pri vytváraní poľa je potrebné vopred deklarovať jeho veľkosť, ktorú v budúcnosti nemožno konvenčnými prostriedkami zmeniť. Riešením tohto problému je vývoj dynamických polí, ktoré môžu kedykoľvek zmeniť počet ich prvkov. Na to môžete navyše použiť obe už vytvorené triedy a implementovať svoje vlastné pomocou štandardných nástrojov programovacieho jazyka.
Inštrukcie
Krok 1
Hlavnou podstatou dynamického poľa je alokovať pamäť pre dáta v ňom uložené presne v takej veľkosti, v akej je to momentálne potrebné. Najvýhodnejšie je túto konštrukciu implementovať vo forme triedy - obalu pre pole. Tu je potrebné zabezpečiť všetky funkcie, ktoré vykonávajú alokáciu a uvoľnenie pamäte pre pole, ako aj operátory, ktoré poskytujú prístup k jeho prvkom.
Krok 2
Vytvorte objekt triedy obálky dynamického poľa a konštruktor automaticky pridelí pamäť určenej veľkosti. Ak pri plnení poľa bude pamäť prvkov úplne obsadená, pri pridávaní ďalších údajov sa vykonajú nasledujúce akcie: - všetky informácie z poľa sú uložené v dočasnom úložisku (pomocné pole); - predtým pridelená pamäť je uvoľnená špeciálnym príkazom (free, delete); - pamäť je pridelená pod poľom s veľkosťou, ktorá musí obsahovať všetky dáta - všetky „staré“hodnoty sú umiestnené do nového poľa z dočasného úložiska a nového prvok je pridaný.
Krok 3
Najlepší spôsob práce s dynamickými poliami je použitie existujúcich tried knižnice. Jedným z najbežnejších príkladov je trieda vektorov. Zahŕňa všetky funkcie a iterátory potrebné na fungovanie premenlivého poľa. Okrem toho je modul knižnice obsahujúci túto triedu dodávaný s ľubovoľnou verziou kompilátora C ++.
Krok 4
Zahrňte knižnicu dynamického poľa pomocou príkazu #include. Na vytvorenie objektu použite vektorovú triedu. Pohyb v poli je rovnaký ako v obvyklom prípade pomocou indexov. Špeciálnymi funkciami sú tu funkcie pre pridávanie a odstraňovanie nových prvkov, ako aj množstvo pomocných metód. Príklad kódu na vytváranie a prevádzku vektora dynamického poľa: #include vector; vector int Mass; // deklarácia dynamického poľa s prvkami typu intMas.push_back (10); // pridanie prvého prvku - číslo 10 Mas.push_back (15); // pridanie druhého prvku - číslo 15Mas [1] = 30; // na druhý prvok je napísané číslo 30Mas.pop_back (); // vymazanie posledného prvku poľa Tu pri vytváraní dynamického poľa s názvom Mass musí byť zadaný typ jeho prvkov (int), v tomto prípade nie je určená dimenzia.