Чи є спосіб знайти кількість значень у масиві? Визначення того, чи дійшов я до кінця масиву, також буде працювати.
Якщо мається на увазі масив в стилі C, то можна зробити щось на зразок:
int a[7];
std::cout << "Length of array = " << (sizeof(a)/sizeof(*a)) << std::endl;
Однак, це не працює з вказівниками, тобто це не спрацює для жодного з наступних випадків:
int *p = new int[7];
std::cout << "Length of array = " << (sizeof(p)/sizeof(*p)) << std::endl;
або:
void func(int *p)
{
std::cout << "Length of array = " << (sizeof(p)/sizeof(*p)) << std::endl;
}
int a[7];
func(a);
У мові C++, якщо вам потрібна така поведінка, то слід використовувати клас-контейнер; ймовірно, std::vector
.
Виконавши sizeof( myArray )
, ви отримаєте загальну кількість байт, виділених для цього масиву. Потім можна дізнатися кількість елементів у масиві шляхом ділення на розмір одного елемента в масиві: sizeof( myArray[0] )
Чи можна знайти, скільки значень має масив?
Так!
Спробуйте sizeof(array)/sizeof(array[0])
Виявлення того, чи дійшов я до кінця масиву, також буде працювати.
Я не бачу способу зробити це, якщо тільки ваш масив не є масивом символів (тобто рядком).
P.S : У мові C++ завжди використовуйте std::vector
. Є декілька вбудованих функцій та розширений функціонал.