Здесь вы узнаете о STL Array Container в C ++, т.е. std :: array.
Надеюсь, вы знаете о массивах C-типа (массивы на языке C). Так как C ++ - это просто расширение языка C, мы можем использовать их. Основное свойство состоит в том, что массив содержит ряд элементов одного типа, размещенных в смежных ячейках памяти. то есть предположим, что у нас есть отметки в 100 учеников, вместо того, чтобы объявлять 100 переменных, используя массив, значения 100 int могут храниться в смежных ячейках памяти, и все они могут быть доступны через один и тот же идентификатор, просто добавляя некоторое число к идентификатору, который указывает на определенный индекс.
Объявление нормального массива
Синтаксис: тип arrayName [размер];
Пример: int marks [5]; // Это массив типа int, в котором хранятся оценки 5 учеников
Инициализация массивов
int mark [5] = {10, 23, 15, 20, 25};
При этом элементы хранятся в смежных местах, что в индексе 0 элемент 10 будет сохранен, оставаясь следующим же.
Доступ к элементам из в массиве :
Синтаксис: arrayName [index];
Пример: отметки [2]; // Это даст значение элемента по 2- му индексу меток массива, который равен 15.
Если мы попытаемся получить доступ, указав вместо индекса число, превышающее размер массива, это вызовет ошибку с именем arrayIndexOutof bound error.
Они непосредственно реализованы как языковая функция, унаследованная от языка Си. Они, вероятно, страдают от избытка оптимизации. Очень меньше встроенных функций.
C ++ STL Array
Чтобы преодолеть проблемы со встроенными в язык массивами, стандартная библиотека C ++ (STL) предоставляет массивы как тип контейнера, который включает в себя богатый набор операций. Это шаблон типа (шаблон класса), определенный в заголовке <array> .
Для работы с этим массивом мы должны включить класс заголовка массива в наш код.
#include <array> // Включая заголовочный файл контейнера массива
Они предлагают лучшую альтернативу для массивов С-типа. Преимущества перед массивами типа C:
- Массивы в стиле C не знают своего размера. Но Array Containers знают свой собственный размер. Таким образом, при передаче массива в функцию здесь нам не нужно передавать его размер в отличие от того, что мы делаем в массивах типа C.
- Массивы в стиле C работали и полностью доступны указателям, а контейнеры Array - нет.
- Контейнеры массивов имеют больше встроенных функций, чем массивы в стиле C. Так что это более эффективно.
Синтаксис массива STL
array <тип данных, размер> arrayName;
Операции над контейнером массива
Давайте обсудим некоторые важные функции массива stl с примерами программ.
at (): этот метод используется для доступа к элементам массива.
Синтаксис: arrayName.at (index);
Вместо индекса, если мы дадим число больше размера массива, это приведет к исключению массива out_out_range.
get () : это также используется для доступа к элементам массива. Но этот метод не принадлежит массиву классов. Он перегружен из кортежа класса.
Синтаксис: get <index> (arrayName);
Оператор []: также используется для доступа к элементам массива. Этот стиль доступа такой же, как у массивов в стиле С.
Пример программы, чтобы показать об этих трех операциях над массивом:
Выход
элементы с использованием at ()
87
98
70
90
100
элементов с использованием оператора []
87
98
70
90
100
элементов с использованием get ()
87
98
70
90
100
87
98
70
90
100
элементов с использованием оператора []
87
98
70
90
100
элементов с использованием get ()
87
98
70
90
100
front () : возвращает первый элемент массива.
back (): возвращает последний элемент массива.
Пример программы для отображения операций front () и back ():
Выход
первый элемент массива равен 87
последний элемент массива равен 100
последний элемент массива равен 100
size () : возвращает количество элементов в массиве. Массивы в стиле C терпят неудачу в этом.
max_size (): возвращает максимальное количество элементов, которое может содержать массив, т.е. размер, с которым объявлен массив. Size () и max_size () возвращают одно и то же значение.
empty (): если размер массива равен нулю, эта функция возвращает true (1). Иначе возвращает ложное значение
fill () : эта функция используется для заполнения всего массива определенным значением.
Пример программы для демонстрации вышеуказанных четырех функций:
Выход
количество элементов в массиве 5
максимальное количество элементов в массиве 5
массив пуст
35 35 35 35 35
максимальное количество элементов в массиве 5
массив пуст
35 35 35 35 35
swap (): это поменяет все элементы одного массива1 на массив2 и от элементов массива2 на массив1. Но условие состоит в том, что оба массива должны быть одного типа и иметь одинаковый размер. Обмен будет сделан таким образом, что каждый i- йиндекс обоих массивов будет поменяться местами.
Пример программы:
Выход
элементы array1 до свопа
1 2 3 4 5
элементы array2 до свопа
11 22 33 44 55
элементы array1 после свопа
11 22 33 44 55
элементы array2 после свопа
1 2 3 4 5
1 2 3 4 5
элементы array2 до свопа
11 22 33 44 55
элементы array1 после свопа
11 22 33 44 55
элементы array2 после свопа
1 2 3 4 5
Прокомментируйте ниже, если у вас есть какие-либо запросы или вы обнаружили какую-либо информацию неверную в вышеприведенном руководстве по C ++ STL Array.
Комментариев нет:
Отправить комментарий