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ď č. 1V 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ď.