Массивы

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

Пришло время рассмотреть одну из интереснейших структур данных в программировании - массивы.

Массив — это структура данных, которая хранит набор элементов одного типа. Каждый элемент массива имеет свой индекс, который начинается с 0.

Основные характеристики массивов:
  • Все элементы массива имеют одинаковый тип.
  • Размер массива фиксирован и задается при его создании.
  • Доступ к элементам массива осуществляется по индексу.

Объявление массива

тип имя_массива[размер];
Пример:
int numbers[5]; // Массив из 5 целых чисел

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

Массив можно инициализировать при объявлении:

тип имя_массива[размер] = {значение1, значение2, ...};
Пример:
int numbers[5] = {1, 2, 3, 4, 5}; // Массив с заданными значениями

Если количество значений меньше размера массива, остальные элементы заполняются нулями:

int numbers[5] = {1, 2}; // [1, 2, 0, 0, 0]

Доступ к элементам массива

Элементы массива доступны по индексу. Индексация начинается с 0.

Пример:
int numbers[3] = {10, 20, 30}; cout << numbers[0] << endl; // 10 cout << numbers[1] << endl; // 20 cout << numbers[2] << endl; // 30

Изменение элементов массива

Элементы массива можно изменять, обращаясь к ним по индексу.

Пример:
int numbers[3] = {10, 20, 30}; numbers[1] = 100; // Изменяем второй элемент cout << numbers[1] << endl; // 100

Многомерные массивы

Массивы могут быть многомерными. Например, двумерный массив (матрица) объявляется так:

тип имя_массива[строки][столбцы];
Пример:
int matrix[2][3] = { {1, 2, 3}, {4, 5, 6} };
Доступ к элементам многомерного массива:
cout << matrix[0][1] << endl; // 2 cout << matrix[1][2] << endl; // 6

Длина массивов

Для статически выделенного массива вы можете использовать оператор sizeof:

#include <iostream> using namespace std; int main() { int array[] = {1, 2, 3, 4, 5}; // Размер массива в байтах size_t sizeInBytes = sizeof(array); // Количество элементов в массиве size_t length = sizeof(array) / sizeof(array[0]); cout << "Длина массива: " << length << endl; return 0; }

Перебор элементов массива

Итак, мы узнали что такое массивы, как обращаться к их элементам и получать длину массива. А как быть если в массиве будет сотня элементов, или если мы вообще не будем знать сколько элементов в массиве?

Мы конечно можем сто раз написать array[0], array[1], array[2], и так далее, но ранее мы познакомились с таким понятием как циклы. Почему бы не воспользоваться нашими знаниями.

Пример:
#include <iostream> using namespace std; int main() { std::string cars[] = {"bmw", "audi", "kia"}; // Инициализация массива строк // Определение размера массива const int size = sizeof(cars) / sizeof(cars[0]); for (int i = 0; i < size; ++i) { // Проход по массиву std::cout << cars[i] << std::endl; // Вывод строки } return 0; }

Значение переменной i в цикле меняется от 0 до 2, получается мы последовательно обращаемся к каждому элементу массива.


- Как добавлять новые элементы в массив?
-- Никак, массивы в C++ неизменяемы, если нужно добавить элементы в массив, то придётся создать новый массив больший по размеру и положить в него элементы из старого массива и добавить новые.
- Это отвратительно и не удобно, вот в JavaScript, Python и PHP удобнее!!!
-- Несомненно удобнее, и за это удобство мы платим бОльшим потреблением оперативной памяти и потерей производительности.
-- На самом деле в C++ есть возможность создавать динамически расширяемые массивы, но об этом поговорим далее...

Мы рассмотрели основные концепции массивов в языке программирования С++, включая создание, инициализацию, доступ к элементам, определение длины и перебор элементов массива. Понимание работы с массивами позволяет эффективно хранить и обрабатывать данные в программах.

На сайте есть интересные задачи на работу с массивами, практикуйтесь!


Комментарии

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

Чтобы оставить комменатрий необходимо Авторизоваться