Слайд 2Массив
Массив — это структура данных, представляющая собой набор переменных одинакового типа, имеющих
![Массив Массив — это структура данных, представляющая собой набор переменных одинакового типа,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/982714/slide-1.jpg)
общее имя.
Массивы удобно использовать для хранения однородной по своей природе информации, например, таблиц и списков.
Слайд 3Пример инициализации массива
Возьмем группу студентов из десяти человек. Создадим массив, в котором
![Пример инициализации массива Возьмем группу студентов из десяти человек. Создадим массив, в](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/982714/slide-2.jpg)
будут храниться фамилии всех студентов.
string students[10] = {
"Иванов", "Петров", "Сидоров",
"Ахмедов", "Ерошкин", "Выхин",
"Андеев", "Вин Дизель", "Картошкин", "Чубайс"
};
Слайд 4Описание синтаксиса
Массив создается почти так же, как и обычная переменная. Для хранения
![Описание синтаксиса Массив создается почти так же, как и обычная переменная. Для](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/982714/slide-3.jpg)
десяти фамилий нам нужен массив, состоящий из 10 элементов. Количество элементов массива задается при его объявлении и заключается в квадратные скобки.
Массив типа int из 10 элементов описывается с помощью адреса его первого элемента и количества байт, которое может вместить этот массив. Если для хранения одного целого числа выделяется 4 байта, то для массива из десяти целых чисел будет выделено 40 байт.
Слайд 5Вывод первого элемента массива
#include
#include
int main()
{ std::string students[10] = {
"Иванов",
![Вывод первого элемента массива #include #include int main() { std::string students[10] =](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/982714/slide-4.jpg)
"Петров", "Сидоров", "Ахмедов", "Ерошкин", "Выхин",
"Андеев", "Вин Дизель", "Картошкин", "Чубайс" };
std::cout << students[0] << std::endl;
return 0; }
Слайд 6Вывод элементов массива через цикл
#include
#include
int main()
{ std::string students[10] = {
![Вывод элементов массива через цикл #include #include int main() { std::string students[10]](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/982714/slide-5.jpg)
"Иванов", "Петров", "Сидоров", "Ахмедов", "Ерошкин", "Выхин",
"Андеев", "Вин Дизель", "Картошкин", "Чубайс" };
for (int i = 0; i < 10; i++) { std::cout << students[i] << std::endl; }
return 0; }
Слайд 7Объявление массива без инициализации
string students[10];
// или
string teachers[5];
Элементы такого массива обычно содержат в
![Объявление массива без инициализации string students[10]; // или string teachers[5]; Элементы такого](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/982714/slide-6.jpg)
себе «мусор» из выделенной, но еще не инициализированной, памяти. Некоторые компиляторы, такие как GCC, заполняют все элементы массива нулями при его создании.
Слайд 8Статический массив
При создании статического массива, для указания его размера может использоваться только
![Статический массив При создании статического массива, для указания его размера может использоваться](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/982714/slide-7.jpg)
константа. Размер выделяемой памяти определяется на этапе компиляции и не может изменяться в процессе выполнения.
Слайд 9Динамический массив
При создании динамического массива выделяется определенное количество памяти для массива, значение
![Динамический массив При создании динамического массива выделяется определенное количество памяти для массива,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/982714/slide-8.jpg)
которого изначально неизвестно.
Например, необходимо создать динамический массив из N элементов, где значение N задается пользователем.
Синтаксис выделения памяти для массива имеет вид указатель = new тип[размер]. В качестве размера массива может выступать любое целое положительное значение.
Слайд 10Создание динамического массива
#include
using namespace std;
int main()
{ int num; // размер массива
![Создание динамического массива #include using namespace std; int main() { int num;](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/982714/slide-9.jpg)
cout << "Enter integer value: ";
cin >> num; // получение от пользователя размера массива
int *p_darr = new int[num]; // Выделение памяти для массива
for (int i = 0; i < num; i++) { // Заполнение массива и вывод значений его элементов
p_darr[i] = i;
cout << "Value of " << i << " element is " << p_darr[i] << endl; }
delete [] p_darr; // очистка памяти
return 0; }
Слайд 11Многомерные массивы
Кроме одномерных массивов в C++ есть многомерные. Элементы таких массивов сами
![Многомерные массивы Кроме одномерных массивов в C++ есть многомерные. Элементы таких массивов](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/982714/slide-10.jpg)
в свою очередь являются массивами, в которых также элементы могут быть массивами. Например, определим двухмерный массив чисел:
int numbers[3][2] = { {1, 2}, {4, 5}, {7, 8} };
Чтобы обратиться к элементам вложенного массива, потребуется два индекса:
numbers[1][0] = 12;
Слайд 12Класс Array
Описывает объект, управляющий последовательностью из элементов N типа T. Последовательность хранится
![Класс Array Описывает объект, управляющий последовательностью из элементов N типа T. Последовательность](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/982714/slide-11.jpg)
как массив T в объекте array.
template
class array;