Массивы в С++
Массив - это тип данных, представленный в виде группы ячеек одного типа, объединенных под одним единым именем и расположенных в памяти подряд. Массив - это непрерывная область памяти. Массив имеет индексы (int - целочисленные значения) от меньшего к большему.
Первый элемент массива имеет индекс - НОЛЬ. Имя массива является указателем на весь массив. Элементами массива могут быть данные любого типа, но только одного типа, который указывается заранее.
Массивы бывают – одномерными, двумерными и многомерные (n-мерные). Индексы массива начинаются с нуля (это смещение). Сначала пишется тип данных, которые будут храниться в массиве, потом имя массива, после могут быть указаны данные.
int arr[2];//Создаем массив arr из 2-х элементов
arr[0]=1;//Первый элемент массива
arr[1]=1;//Второй элемент массива
А можно так:
int size=2;
int arr[size];
...
А можно уже с данными, при этом количество элементов указывать не обязательно.
int arr[]={1,2,3};//Можно сразу создать массив со значениями
Длина массива
int n=sizeof(arr)/sizeof(int);//Длина массива
//или
int n=sizeof(arr)/sizeof(arr[0]);//Длина массива
Полный вариант:
#include <iostream>
using namespace std;//Пространство имён
int main()
{
setlocale(0,"");//Кириллица
int arr[]={1,2,3};//Создаем массив и значения
int n=sizeof(arr)/sizeof(arr[0]);//Делим размер всего массива на размер первого (одного) элемента
cout << n << endl;//Выводит 3
}
Обход массива С++ в цикле
#include <iostream>
using namespace std;//Пространство имён
int main()
{
int arr[]={5,-12,-3,9,10};//Создаем массив
int n=sizeof(arr)/sizeof(arr[0]);//Узнаем длину массива
for(int i=0; i<n; i++)//Обходим массив в цикле
{
cout << arr[i] << endl;//Выводим элементы массива
}
system("pause");//Команда задержки экрана
return 0;
}
Имя массива является ссылкой на него: записи: arr и &arr равны.
Двумерные массивы в С++
//Пример объявление двумерного массива:
int arr[5][3];
или так:
//Инициализация двумерного массива:
int arr[][3]={{4,7,8}, {9,66,-1}, {5,-5,0}, {3,-3,30}, {1,2,3}};
Массивы также могут быть многомерными (n-мерными).
Динамические массивы
Динамические массивы и генератор случайных чисел в массиве:
С++ использует методы работы с динамической памятью при помощи операторов new и delete:
- new — для выделения памяти;
- delete — для освобождения памяти.
Оператор new используется в следующих формах:
- new тип; — для переменных
- new тип[размер]; — для массивов
Динамический массив - генератор случайных чисел для значений массива - пример:
#include <iostream>
#include <cstdlib>//Библиотека rand
#include <ctime>//Библиотека time
using namespace std;//Пространство имён
int main()
{
setlocale(0,"");//Кириллица
unsigned rand_value=time(0);//Секунд с 01.01.1970
srand(rand_value);//Рандомизация генератора случайных чисел
//srand(time(0));//Или так
int size=5;//Длина массива
int* arr=new int[size];//Выделение динамической памяти под массив
for (int i=0; i<size; i++)
{
arr[i]=rand()%10;//Присваиваем случайные значения от 0 до 9
}
for (int i=0; i<size; i++)
{
cout << arr[i] << " = " << *(arr+i) << " - адрес: " << arr+i << endl;//адреса +4 байта
}
delete []arr;//Освобождаем память после массива
arr=NULL;//Затираем ссылку на массив
system("pause");//Команда задержки экрана
return 0;
}