Cout<<"dynamic_array";
staziss
Привет! Сегодня мы рассмотрим самую распространённую и гибкую в использовании структуру данных, а именно динамический массив.
Представление о динамическом массиве.
По сути, динамический массив это сын статического массива, так как обладает тем же функционалом. Но почему же нам так необходимы динамические массивы, если есть статические массивы? Суть состоит в том, что при решении задач мы не знаем о количестве входных данных(обычно доступен только формат ввода). Поэтому мы не можем изначально присвоить константный размер массиву.
Как реализовать динамический массив?
Для объявления динамического массива нам понадобится следующая конструкция:
<тип данных указателя> *<имя массива> = new <тип данных>[<размер массива>];
<тип данных указателя> — лучше указать такой же тип как и у типа данных, которые будут записываться в массив.
<тип данных> — записать тип данных, который будет использоваться в массиве.
<имя массива> — чтобы не усложнять начальное понимание темы, можно сказать, что это просто наименование массива, на самом деле это указатель на первый элемент массива.
<размер массива> — задаём размер массива.
Возможно, вас насторожило слово new, но не беспокойтесь - это просто оператор, выделяющий динамическую память. Условно говоря, работу этого оператора можно сравнить с подбором коробки(массива) в которую мы будем складывать вещи для переезда(элементы массива). (Более подробнее об new будет в теме указателей.)
Например пользователю необходимо записать значения стоимости квартир в массив.

Динамические массивы обладают такими же операциями как и статические массивы.

Юхууу, я могу захватить всю память.
После создания динамического массива компьютер выделят память под хранение наших элементов, но C++ не умеет собирать мусор после себя, поэтому нам необходимо самим освобождать память, если мы не позаботимся об этом, то программа может завершиться с ошибкой.
Для того чтобы очистить ненужную память нам необходим оператор delete, вот его синтаксис:
delete[]<имя массива>;

Поздравляю, вы научились объявлять динамический массив и обращаться к его элементам! :)
Не бойтесь трудностей в процессе обучения, это абсолютно нормально. Если у вас есть какие-то вопросы по статье или предложения по улучшению ее качества, мы всегда рады обратной связи.
С ув. TechMentor.
Упражнения для закрепления материала.
1.Поменять местами последний максимальный элемент в массиве с первым минимальным.
Условие:
Дан массив, состоящий из n элементов.
Необходимо поменять местами последний максимальный элемент в массиве с первым минимальным.
Входные данные:
Первая строка входного файла содержит единственное число n – количество элементов в массиве.
Во второй строке находятся n целых чисел ai – элементы массива.
Выходные данные:
В выходной файл необходимо вывести измененный массив.
Тест 1.
Входные данные:
5 1 5 2 5 3
Выходные данные:
5 5 2 1 3
2. Найти номер i в массиве такой, что сумма всех элементов с номерами > i будет равна сумме элементов с номерами < i
Условие:
Дан массив неотрицательных целых чисел.
Необходимо найти номер такого элемента, что сумма всех элементов справа от него равна сумме всех элементов слева от него.
Гарантируется, что данный элемент присутствует в массиве.
Входные данные:
В первой строке входного файла дано число n – количество элементов в массиве (1 ≤ n ≤ 10**5).
Во второй строке даны n чисел – элементы массива. Каждое число не превосходит 10**4.
Выходные данные:
В выходной файл необходимо вывести единственное число – искомый номер элемента.
Тест 1.
Входные данные:
4 9 1 3 6
Выходные данные:
2
Тест 2.
Входные данные:
5 2 3 7 1 4
Выходные данные:
3