Press any key to continue.

Инициализация массива

Для того чтобы использовать массивы в своих программах, его надо объявить. Для этого нужно использовать следующею конструкцию: <тип> <имя массива> [ <кол-во элементов > ];

Например: int arr[50];

Этим кодом мы создали массив типа int с именем arr в котором может храниться до 50-ти элементов.

Также можно использовать и другие типы: float myTestArrayForLesson[10 * 1000 + 1];

Данный код также абсолютно корректен. Давайте также рассмотрим способ указания значения элементам массива при его инициализации:

  int arr[] = {0, 1, 2, 3, 4, 5}; // массив будет иметь 6 элементов (от 0 до 5) int mas[100] = {0}; // все 100 элементов будут иметь значение 0

Как видите, для того, чтобы задать значения, нужно сразу после объявления массива указать через равно в фигурных скобках требуемые значения.

Теперь давайте разберемся в том, как же нам в своих программах использовать данные в массиве.

Обращение к элементам массива

Очень важный момент! В C++ нумерация элементов массива идет с нуля. То есть второй элемент будет иметь индекс 1, а десятый — 9. к сожалению, многие новички забывают про это.

Для начала, давайте научимся присваивать элементам массива требуемые нам значения. Для этого достаточно указать имя массива и номер требуемого элемента, а затем после знака равенства указать присваиваемое значение: arr[6] = 7 * 4; // arr[6] равен 28

Для обращения к элементу массива в C++ мы должны использовать следующею конструкцию:

  <любой код> <имя массива> [ <№ элемента> ] <любой код>

Это может выглядеть следующим образом: cout << arr[10] << ", " << arr[11] << endl;

Таким образом мы выводим на экран значения одиннадцатого и двенадцатого элементов.

Двухмерные массивы

Очень часто при решении практических задач возникает потребность в использовании таблиц, матриц и т. д. В таком случае нам может пригодится отличная модификации массива — двухмерные (и более) массивы. Для этого нам просто нужно объявить массив массивов. Делается это следующим образом: int arr[100][50] = {0}; // двухмерный массив

Этим кодом мы создали матрицу размером 100×50, которая изначально заполнена нулями. Ее использование ничуть не отличается от выше рассмотренных обычных массивов:

  int matrix[100][100] = {0}; matrix[5][10] = 11; matrix[10][5] = 1; cout << "Interesting values:\n"; cout << matrix[0][0] << ", " << matrix[5][10] << ", " << matrix[10][5] << endl;

Если мы выполним такой код (предварительно обернув его в функцию main), то увидим следующее:

Interesting values:

0, 11, 1

Process returned 0 (0×0) execution time : 0.020 s

Press any key to continue.

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

Пример

Реализовывать мы будем хранилище данных. Изначально оно пустое (содержит нули). Пользователь сможет записывать в нее значения и извлекать при необходимости (пользователь будет указывать номер дома и квартиры человека, а хранить мы будем его возраст).

Вот код данной программы:

  #include <iostream> #include <stdlib.h> using namespace std; int main() { int data[500][500] = {0}; // массив string type; // тип запроса int x, y, val; while (true) { // бесконечный цикл cin >> type; // узнаем тип запроса if (type == "End") { // если End, то завершаем работу break; } else if (type == "Insert") { // вставка cin >> x >> y >> val; data[x][y] = val; } else if (type == "Delete") { // удаление cin >> x >> y; data[x][y] = 0; } else if (type == "Get") { // получение значения cin >> x >> y; cout << data[x][y] << endl; } else { // что-то пошло не так cout << "Error! Let's try again." << endl; } } cout << "\nOk. Good work." << endl; return 0; }

Вот пример работы данной программы:

Insert 1 1 4

Insert 5 4 2

Inser

Error! Let's try again.

Get 1 2

Get 5 4

Get 1 1

Delete 1 1

Get 1 1

End

Ok. Good work.

Process returned 0 (0×0) execution time : 0.020 s

Press any key to continue.

Расширьте функционал данной программы следующим образом:

1. Добавьте возможность узнать, живет ли в данной квартире кто-нибудь или нет (подсказка: заведите массив типа bool).

2. Установите ограничения на x и y. Сейчас программа не будет работать при x >= 500. Для решения этой проблемы выводите пользователю сообщение при попытке добавить элемент с некорректными значениями x или y.

Наши рекомендации