Как узнать размер массива на C++?

Apr 6, 2024
User
You
Как узнать размер массива на C++?
ChatGPT
ChatGPT

В C++ для узнавания размера массива можно использовать несколько различных методов, в зависимости от того, какой тип массива вы используете:

  1. С использованием оператора sizeof: Если у вас есть статический массив, то вы можете использовать оператор sizeof, чтобы узнать его размер в байтах, а затем разделить его на размер одного элемента, чтобы получить количество элементов в массиве. Например:
cpp
int arr[10]; int size = sizeof(arr) / sizeof(arr[0]);
  1. С использованием функции std::size() (для C++17 и новее): Если у вас есть контейнер STL или массив с известным размером во время компиляции, вы можете использовать функцию 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; }
  1. С использованием шаблонной функции sizeofArray: Это пользовательская функция, которая использует тот же подход, что и первый метод, но позволяет избежать дублирования кода. Например:
cpp
template<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; }
  1. С использованием std::end() (для C++11 и новее): В C++11 и новее вы также можете использовать std::end() для получения указателя на конец массива, и затем вычислить разницу между указателями начала и конца. Например:
cpp
int arr[5] = {1, 2, 3, 4, 5}; int size = std::end(arr) - std::begin(arr);

Выбор метода зависит от вашего конкретного случая использования, но обычно наиболее предпочтительным считается использование std::size() для массивов STL и sizeof(arr) / sizeof(arr[0]) для статических массивов.

3 / 3
Create your own with gpt.best →