Masīvi ir viens no visbiežāk izmantotajiem datu glabāšanas veidiem programmas darbības laikā. Tie ļauj sakārtot viena veida elementus sakārtotā secībā un ātri piekļūt tiem pēc rādītāja. Ļoti bieži, izstrādājot lietojumprogrammas jaudīgās un elastīgās programmēšanas valodās, kas nodrošina tiešu piekļuvi atmiņai, piemēram, C ++, jums jānosaka masīva lielums.
Nepieciešams
C ++ kompilators
Instrukcijas
1. solis
Nosakiet masīva lielumu sastādīšanas laikā, aprēķinot to, izmantojot operatora sizeof lielumu. Šis operators atgriež atmiņas apjomu (baitos), ko aizņem viņam nodotais arguments. Arguments var būt vai nu mainīgs, vai tipa identifikators. Operators sizeof atgriež objekta aizņemto atmiņas ierobežoto daudzumu programmas izpildes posmā (ņemot vērā, piemēram, struktūras lauku izlīdzināšanas iestatījumus), bet tā aprēķināšana tiek veikta kompilēšanas stadijā.
2. solis
Lai noteiktu masīva lielumu, izmantojot operatoru sizeof, sadaliet visu tā lielumu ar viena elementa lielumu. Piemēram, ja jums ir šāda masīva definīcija: int aTemp = {10, 20, 0xFFFF, -1, 16}, tā lielumu var aprēķināt šādi: int nSize = sizeof (aTemp) / sizeof (aTemp [0]);
3. solis
Lai ērtāk izmantotu šo metodi, ir lietderīgi definēt makro: #define countof (a) (sizeof (a) / sizeof (a [0])). Ņemiet vērā, ka, tā kā operatora sizeof vērtība tiek aprēķināta kompilēšanas laikā laikā, kad tiek veikts aprēķins, informācijai par masīva apjomu un tā elementiem jābūt skaidri pieejamai. Citiem vārdiem sakot, pēc tā ārējās deklarācijas nav iespējams noteikt nezināma lieluma masīva parametrus.
4. solis
Nosakiet masīva lielumu programmas izpildes laikā, izmantojot zināmo tā izbeigšanas pazīmi. Viena no pieejām, kas ļauj uzglabāt un pārsūtīt datus nenoteikta garuma masīvu veidā, ir piešķirt īpašu vērtību zīmei, kas norāda uz datu secības pabeigšanu. Piemēram, viena baita C stila virknēm, kas ir rakstzīmju masīvi, jābeidzas ar vērtību 0, iesaiņotiem mainīga garuma C virkņu masīviem ir nulles gals, un rādītāju masīviem jābūt ar nulles galiem.
5. solis
Lai noteiktu šādā veidā attēlota masīva lielumu, skenējiet to pa elementiem, līdz atrodat beigu elementu. Skenēšanas laikā palieliniet nulles inicializēto skaitītāju. Vai arī palieliniet rādītāja vērtību līdz masīva elementam un pēc skenēšanas aprēķiniet starpību starp rādītājiem uz pašreizējo un pirmo elementu.
6. solis
Saņemiet dinamiskā masīva lielumu, ko attēlo ietvars vai bibliotēkas objekts, izsaucot tā metodi. Jebkurās klasēs, kas ietver šādu masīvu funkcionalitāti, ir metodes pašreizējā elementu skaita iegūšanai. Piemēram, C ++ standarta bibliotēkas std:: vektoru veidņu klasei ir lieluma metode, Qt ietvara QVector klasei ir skaitīšanas metode un MFC analogajai CArray klasei ir metode GetCount.