Cout<<"dynamic_array";

Cout<<"dynamic_array";

staziss

Привет! Сегодня мы рассмотрим самую распространённую и гибкую в использовании структуру данных, а именно динамический массив.

Представление о динамическом массиве.

По сути, динамический массив это сын статического массива, так как обладает тем же функционалом. Но почему же нам так необходимы динамические массивы, если есть статические массивы? Суть состоит в том, что при решении задач мы не знаем о количестве входных данных(обычно доступен только формат ввода). Поэтому мы не можем изначально присвоить константный размер массиву.

Как реализовать динамический массив?

Для объявления динамического массива нам понадобится следующая конструкция:

<тип данных указателя> *<имя массива> = new <тип данных>[<размер массива>];

<тип данных указателя>  — лучше указать такой же тип как и у типа данных, которые будут записываться в массив.

<тип данных>  — записать тип данных, который будет использоваться в массиве.

<имя массива>  — чтобы не усложнять начальное понимание темы, можно сказать, что это просто наименование массива, на самом деле это указатель на первый элемент массива.

<размер массива>  — задаём размер массива.

Возможно, вас насторожило слово new, но не беспокойтесь - это просто оператор, выделяющий динамическую память. Условно говоря, работу этого оператора можно сравнить с подбором коробки(массива) в которую мы будем складывать вещи для переезда(элементы массива). (Более подробнее об new будет в теме указателей.)

Например пользователю необходимо записать значения стоимости квартир в массив.

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

Юхууу, я могу захватить всю память.

После создания динамического массива компьютер выделят память под хранение наших элементов, но C++ не умеет собирать мусор после себя, поэтому нам необходимо самим освобождать память, если мы не позаботимся об этом, то программа может завершиться с ошибкой.

Для того чтобы очистить ненужную память нам необходим оператор delete, вот его синтаксис:

delete[]<имя массива>;

Поздравляю, вы научились объявлять динамический массив и обращаться к его элементам! :)

Не бойтесь трудностей в процессе обучения, это абсолютно нормально. Если у вас есть какие-то вопросы по статье или предложения по улучшению ее качества, мы всегда рады обратной связи.

С ув. TechMentor.

Упражнения для закрепления материала.

1.Поменять местами последний максимальный элемент в массиве с первым минимальным.

Условие:

Дан массив, состоящий из 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

Report Page