В C++ для узнавания размера массива можно использовать несколько различных методов, в зависимости от того, какой тип массива вы используете:
sizeof
, чтобы узнать его размер в байтах, а затем разделить его на размер одного элемента, чтобы получить количество элементов в массиве. Например:cppint arr[10];
int size = sizeof(arr) / sizeof(arr[0]);
std::size()
, которая была добавлена в стандарт C++17. Например:cpp#include <iostream>
#include <array>
int main() {
std::array<int, 5> arr = {1, 2, 3, 4, 5};
std::cout << "Size of array: " << std::size(arr) << std::endl;
return 0;
}
cpptemplate<typename T, size_t N>
size_t sizeofArray(const T (&)[N]) {
return N;
}
int main() {
int arr[10];
std::cout << "Size of array: " << sizeofArray(arr) << std::endl;
return 0;
}
std::end()
для получения указателя на конец массива, и затем вычислить разницу между указателями начала и конца. Например:cppint arr[5] = {1, 2, 3, 4, 5};
int size = std::end(arr) - std::begin(arr);
Выбор метода зависит от вашего конкретного случая использования, но обычно наиболее предпочтительным считается использование std::size()
для массивов STL и sizeof(arr) / sizeof(arr[0])
для статических массивов.