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.