Эврика!

Регистрация

Как создать массив

Массивы являются одной из самых простых и, возможно, самой используемой формой структурированного хранения данных при обработке информации в компьютерных программах. Основное их преимущество - возможность очень быстрого доступа к элементу по его порядковому номеру (индексу). Создать массив в языке C++ можно несколькими способами.Как создать массивВам понадобится

Создайте массив фиксированного размера. Его декларация должна содержать тип значений, идентификатор переменной и спецификацию размерности с указанием количеств элементов. Например, одномерный массив целых значений, состоящий из десяти элементов, можно определить так:int aNumbers[10];Подобным образом можно создавать и многомерные массивы:int aNumbers[3][4];Для инициализации подобных переменных можно использовать литералы массивов:int aNumbers_1[10] = { 1, 2, 3 }; int aNumbers_2[3][3] ={    { 1, 2, 3 },    { 4, 5, 6 },    { 7, 8, 9 }};Обратите внимание на то, что количество элементов литеральных массивов-инициализаторов может быть меньше чем у инициализируемых им переменных. В этом случае части элементов массива-приемника просто не будут присвоены значения.

Создайте массив, объем которого определяется инициализирующим литералом. Декларируйте массив, не специфицируя его размер. Массивы, определенные подобным образом, обязательно должны быть инициализированы:int aNumbers[] = { 1, 2, 3 };Таким же образом можно создавать многомерные массивы. Однако «переменным» допускается делать только одно, первое измерение:int aNumbers[][3] ={    { 1, 2, 3 },    { 4, 5, 6 },    { 7, 8, 9 },    { 0, 1, 2 }};Данным способом очень удобно определять статические константные массивы. Их объем может быть вычислен на этапе компиляции с использованием ключевого слова sizeof.

Создайте массив в динамически распределяемой памяти. Определите указатель на значение типа элемента массива. Выделите память под необходимое количество данных. Присвойте указателю значение адреса первого байта выделенного блока. Используйте функции распределения памяти библиотеки C (calloc, malloc), оператор new C++ или платформ-специфические функции (такие как VirtualAlloc, VirtualAllocEx в Windows). Например:int* paNumbers_0 = (int *) malloc(sizeof(int) * 10);int* paNumbers_1 = new int(10); paNumbers_0[1] = 0xFF; // доступ к элементуpaNumbers_1[2] = 0xFF; // доступ к элементуПосле окончания использования созданных таким образом массивов, необходимо освободить выделенную память:free(paNumbers_0);delete [] paNumbers_1;

Создайте объект класса, реализующего функционал массива. Подобные классы или шаблоны классов содержатся во многих популярных фреймворках и библиотеках. Так, в стандартной библиотеке шаблонов C++ (STL) имеется контейнер std::vector. Создать и использовать массив на его основе можно следующим образом:std::vector<int> oVector; // декларация объекта массива oVector.resize(10); // изменение размера массиваoVector[0] = 1; // доступ к элементуoVector.push_back(0xFF); // добавление элемента в конецОбратите внимание на то, что из-за автоматического управления памятью и наличия удобных методов модификации (изменение размера, добавление элементов, и т.д.), использование подобных классов зачастую бывает более целесообразным, чем применение массивов в стиле C.

© CompleteRepair.Ru