Что такое std::array в С++?
В C++ контейнер, известный как станд::массив используется для хранения фиксированного количества элементов данных одного типа. станд::массив container представляет собой альтернативу массивам в стиле C, поскольку он безопаснее, проще в использовании и имеет лучшую производительность.
Этот класс, являющийся компонентом стандартной библиотеки C++, предлагает практичный и эффективный подход к хранению и доступу к элементам с одним и тем же типом данных. Потому что размер станд::массив известен во время компиляции, сокращаются накладные расходы динамического масштабирования во время выполнения. Размер массива задается параметром шаблона, а элементы станд::массив хранятся в непрерывной памяти.
Объявить std::array в C++
Вы можете объявить станд::массив нравиться:
стандарт :: множество < инт , 4 > обр ;
Приведенный выше синтаксис объявляет массив с именем обр с фиксированным размером 4 элемента, где каждый элемент имеет тип int.
Пример std::массив
Пример 1: Ниже приведен простой пример инициализации станд::массив в С++:
#include <массив>
#include
инт основной ( ) {
стандарт :: множество < инт , 4 > обр '=' { 4 , 6 , 2 , 1 } ;
для ( инт я '=' 0 ; я < обр. размер ( ) ; я ++ ) {
стандарт :: cout << обр [ я ] << ' ' ;
}
стандарт :: cout << стандарт :: конец ;
возвращаться 0 ;
}
Выход
Пример 2: Вы также можете использовать станд::массив для доступа к элементам массива. Код приведен ниже:
#include <массив>#include
инт основной ( ) {
стандарт :: множество < инт , 3 > обр '=' { 1 , 2 , 3 } ;
стандарт :: cout << 'Первый элемент' << обр [ 0 ] << стандарт :: конец ;
стандарт :: cout << 'Второй элемент' << обр. в ( 1 ) << стандарт :: конец ;
стандарт :: cout << 'Третий элемент' << обр. назад ( ) << стандарт :: конец ;
возвращаться 0 ;
}
Выход
Пример 3: В следующем примере показана печать элемента из массива в определенной позиции с использованием станд::массив в С++.
#include#include <массив>
инт основной ( )
{
стандарт :: множество < инт , 4 > обр '=' { 4 , 6 , 2 , 1 } ;
стандарт :: cout << обр [ 3 ] << стандарт :: конец ;
возвращаться 0 ;
}
Выход
Преимущества std::array в C++
В отличие от традиционных массивов в C++, станд::массив предлагает ряд функций.
1: Интуитивно понятный синтаксис
станд::массив имеет более интуитивно понятный синтаксис для инициализации и может быть инициализирован с помощью списка инициализаторов. Это обеспечивает более лаконичный и удобочитаемый способ инициализации массива.
2: Передается как аргумент
станд::массив могут быть переданы в качестве аргументов в функции, а также могут быть возвращены из функций.
3: Управление памятью
Одно из ключевых преимуществ использования станд::массив заключается в том, что он обеспечивает простое и эффективное управление памятью. Это означает, что нет необходимости в ручном выделении или освобождении памяти.
4: Автоматическая проверка границ
Дело в том, что станд::массив предлагает автоматическую проверку границ для массивов в стиле C, что является одним из его ключевых преимуществ. Это означает, что если программа попытается получить доступ к элементу за пределами определенного диапазона массива, компилятор выдаст ошибку. Переполнение буфера, ошибки сегментации и утечки памяти — это лишь некоторые из частых проблем программирования, которых может помочь избежать проверка привязки.
5: Предоставляет полезные функции
станд::массив предлагает несколько удобных функций, таких как итераторы, size(), front(), back(), fill() и at(), что является еще одним преимуществом. Эти функции упрощают работу с элементами массива без необходимости написания сложного и подверженного ошибкам кода. Итераторы, например, упрощают навигацию по элементам массива, а метод fill() позволяет указать одно значение для всего набора элементов массива.
Заключение
В С++, станд::массив class предлагает практичный способ работы с массивами фиксированного размера, а также некоторые полезные функции и преимущества безопасности типов и диапазонов. Для инициализации и проверки границ он предоставляет более четкий и понятный синтаксис, который может помочь избежать многих типичных ошибок программирования. В большинстве ситуаций, когда необходимо использовать массивы фиксированного размера, рекомендуется использовать std::array, поскольку он обеспечивает более современный и безопасный метод управления ими.