1

Is there any way to find the number of elements in an array in VC++ without using for loop.

Let us say array has 16 elements;

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

Now I if I want to get the length to be equal to 7 & NOT 16 (I mean I want to know the number of elements stored in this array instead of getting the number of spaces in the array). Is there any way similiar to the length() functions we have in C#? I am using VC++ on VS2008.

Thanks in advance.

4

2 に答える 2

4

組み込み配列の場合、これを行う唯一の方法は、この「長さ」を自分で追跡することです。それを自動的に行う方法はありません。

ただし、より良い方法は、を使用することstd::vector<int>です。現在の要素数 (「サイズ」) と、配列を再割り当てせずに収容できる要素数 (「容量」) の両方を自動的に追跡します。

于 2012-05-24T14:14:25.180 に答える
2

いいえ、できません。配列全体を埋めない場合、残りの要素は初期化時に型に応じて値で埋められます。

C/C++ は配列の境界チェックを行わず、配列要素の数を追跡することもありません。言語は、要求したメモリの連続したブロックを提供するだけであり、それをどのように使用するかはあなたの責任です。配列に格納されている要素の数と同様に。

std::vectorを使用するだけで、多くの問題と簿記を節約できます。
通常の配列が提供するすべてのものを提供しますがsize()、要素数などについて簿記を行うような多くの便利なメンバー関数を備えています.

于 2012-05-24T14:13:43.463 に答える