/ / Znalosť počtu prvkov uložených v poli VC ++ - c ++, poliach, visual-studio-2008, visual-c ++

Znalosť počtu prvkov uložených v poli vo formáte VC ++ - c ++, poliach, visual-studio-2008, visual-c ++

Existuje nejaký spôsob, ako nájsť počet prvkov v poli v VC + + bez použitia pre slučku.

Povedzme, že pole má 16 prvkov;

int a[16];
a={1,2,3,4,5,6,7};

Teraz, keď chcem, aby sa dĺžka rovná7 & NOT 16 (Myslím, že chcem vedieť, koľko prvkov je uložených v tomto poli namiesto získania počtu medzipriestorov v poli). Existuje nejaký spôsob podobný length() funkcie, ktoré máme v C #? Používam VC ++ na VS2008.

Vopred ďakujem.

odpovede:

4 pre odpoveď č. 1

V prípade vstavaných polí to jediný spôsob, ako to urobiť, je pre vás, aby ste sleduli túto "dĺžku" sami. Neexistuje automatický spôsob, ako to spraviť.

Lepším spôsobom je však použitie std::vector<int>, Automaticky zaznamenáva súčasný počet prvkov ("veľkosť") a počet prvkov, ktoré môžu byť uložené bez prerozdelenia poľa ("kapacita").


2 pre odpoveď č. 2

Nie, nie je to možné, ak nevyplníte celé pole, ostatné prvky budú vyplnené hodnotami v závislosti od typu pri inicializácii.

Upozorňujeme, že C / C ++ nekontroluje hranicepolia ani sledovať číslo, ak sú elementy poľa, jazyk vám poskytne súvislý blok pamäte, o ktorý ste požiadali, je vašou zodpovednosťou za to, ako a či ju používate. Rovnako ako počet prvkov uložených v poli.

Môžete ušetriť veľa problémov a účtovníctvo jednoducho pomocou std :: vector.
Poskytuje vám všetko, čo by malo normálne pole, ale s množstvom užitočných funkcií členov size() ktoré vám pre vás vedú účtovníctvo o počte prvkov atď.