Учимся работать с массивами в C++

Массивы в C++: главные моменты и особенности

Всем привет! В данном уроке мы рассмотрим чрезвычайно популярную структуру хранения данных — массивы. Массивы вы можете встретить в любом языке программирования, поскольку без них хранение данных было бы очень тяжелой задачей. Давай начнем!

Что такое массив?

Массив — это набор однотипных данных. Например, вы можете хранить все носки в одном месте. Для этого вы используете полку. В C++ множество элементов хранятся в массивах.

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

Массив целых чисел

По ней мы можем понять следующее:

  • Каждый массив должен иметь свое название.
  • Он может в себе содержать от одного элемента до бесконечности (это в теории, на практике размер массива ограничивается памятью компьютера).
  • Все элементы должны быть одного типа. Так, например, вы не можете в одном массиве хранить переменные типа int и типа double.

Теперь, когда вы понимаете концепцию массива, мы можем перейти к его реализацией на С++.

Используем массивы в C++

В C++ с массивами довольно легко работать (поскольку массивы содержат много однотипных значений, для их обработки удобно использовать цикл for). Давайте научимся это делать с объявления массива.

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

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

Например:

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

Также можно использовать и другие типы:

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

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

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

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

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

Вообще, есть возможность работать без нулевого элемента. Для этого в программе придется всегда следить за нужной нумерацией элементов в массиве. Так, например, вы не сможете задавать различные значение элементов по порядку (как мы это сделали вверху). Для этого вам придется для нулевого элемента указывать, например, -1.

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

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

Это может выглядеть следующим образом:

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

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

Очень часто при решении практических задач возникает потребность в использовании таблиц, матриц и т. д. В таком случае нам может пригодится отличная модификации массива — двухмерные (и более) массивы. Для этого нам просто нужно объявить массив массивов. Делается это следующим образом:

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

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

matrix.cpp
Interesting values:
0, 11, 1
Process returned 0 (0x0) execution time : 0.020 s
Press any key to continue.

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

Пример

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

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

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

ageOfPeople.cpp
Insert 1 1 4
Insert 5 4 2
Inser
Error! Let’s try again.
Get 1 2
0
Get 5 4
2
Get 1 1
4
Delete 1 1
Get 1 1
0
End
Ok. Good work.
Process returned 0 (0x0) execution time : 0.020 s
Press any key to continue.

Здесь были использованы двухмерные массивы в C++ для хранения данных. Если вы что-то не поняли, то можете оставить свой вопрос в комментариях (мы оперативно отвечаем:-) ).

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

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



Тест на тему «Массивы». Проверь себя!

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

If loading fails, click here to try again

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


Если вы хотите отблагодарить автора за проделанную работу, то поделитесь данной информацией с помощью кнопок ниже.

Спасибо за внимание!




Комментарии к записи “Массивы в C++: главные моменты и особенности”

Добавить комментарий

Ваш адрес email не будет опубликован.

  • Xdark2:

    Код представленный в последнем примере не работает в Visual Studio 2012! [error C2678]
    ——
    В начале кода нужно подключить еще один модуль!
    #include

  • Владислав:

    Обязательно для массива использовать элемент «#include «. Просто я не дошёл до изучения такой темы, как библиотеки, а программу с массивами написать надо.

    • Владислав:

      stdlib.h

      Почему-то это не написалось

    • Дмитрий:

      Необязательно, но если будет проблема с подключением библиотек можете подключить сразу все — #include .

  • Ару:

    можете написать в примере цикла for с массивом пароль программы ?

    • Дмитрий:

      Весь код писать сюда не буду, но вот как будет выглядеть условие цикла — for (int i = 0; i < n; i++). n - это количество паролей (столько у нас будет итераций).

  • Константин:

    А как вывести на экран саму матрицу, а не элемент матрицы?

    • Дмитрий:

      Выведите ее через двойной цикл for или while, в зависимости что вы предпочитаете. Лично я бы оперировал for.

  • Владислав:

    Всем здравствуйте! Можете помочь в выполнении такого задания, в программировании не силен, а сделать нужно.
    Задание:Массив A = (15, 9, –6, 12, –9, 18, 0) преобразован к виду A = (5, 3, 0, 4, 0, 6, 0). Размер массива A — 20 элементов из диапазона [–25,25]. Вычислить сумму четных элементов преобразованного массива.
    Моя попытка написать код:
    #include
    using namespace std;

    int A[]= {5,3,1,4,0,6,0};
    int sumEl;

    int main(int argc, const char * argv[]) {

    for (int i =0; i < sizeof(A) / sizeof(int); i++) {
    if (i%2 == 0) {
    sumEl+=A[i];
    }
    }

    std::cout << sumEl <<std::endl;
    return 0;
    }

    • Дмитрий:

      Вам нужно использовать в условии i % 2 == 1, потому что индексация начинается с 0.
      #include
      using namespace std;

      int A[]= {5,3,1,4,0,6,0};
      int sumEl;

      int main(int argc, const char * argv[]) {

      for (int i =0; i < sizeof(A) / sizeof(int); i++) { if (i%2 == 1) { sumEl+=A[i]; } } cout << sumEl <

  • Д:

    .Дан массив целых чисел из 15 элементов. Найти произведение положительных элементов массива