Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Язык C

Массивы С++

Массивы C++

В этом уроке мы научимся работать с массивами. Мы научимся объявлять, инициализировать и получать доступ к элементам массива в программировании на C++ с помощью примеров.

В языке C++ массив – это переменная, которая может хранить несколько значений одного типа. Например,

Предположим, в классе 27 учеников, и нам нужно сохранить оценки всех из них. Вместо создания 27 отдельных переменных мы можем просто создать массив:

double grade[27];

Вот, оценка это массив, который может содержать максимум 27 элементов double тип.

В C++ размер и тип массива нельзя изменить после его объявления.

<час>

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

dataType arrayName[arraySize];

Например,

int x[6];

Здесь

<час>

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

В C++ каждому элементу массива соответствует число. Число известно как индекс массива. Мы можем получить доступ к элементам массива, используя эти индексы.

// syntax to access array elements
array[index];

Рассмотрим массив x мы видели выше.

<рисунок>

Несколько вещей, которые нужно помнить:

<час>

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

В C++ можно инициализировать массив во время объявления. Например,

// declare and initialize and array
int x[6] = {19, 10, 8, 17, 9, 15};
<рисунок>

Другой способ инициализации массива при объявлении:

// declare and initialize an array
int x[] = {19, 10, 8, 17, 9, 15};

Здесь мы не упомянули размер массива. В таких случаях компилятор автоматически вычисляет размер.

<час>

Массив C++ с пустыми элементами

В C++, если массив имеет размер n , мы можем хранить до n количество элементов в массиве. Однако что произойдет, если мы сохраним меньше, чем n количество элементов.

Например,

// store only 3 elements in the array
int x[6] = {19, 10, 8};

Здесь массив x имеет размер 6 . Однако мы инициализировали его всего тремя элементами.

В таких случаях компилятор присваивает оставшимся местам случайные значения. Часто это случайное значение просто 0 .

<рисунок> <час>

Как вставлять и печатать элементы массива?

int mark[5] = {19, 10, 8, 17, 9}

// change 4th element to 9
mark[3] = 9;

// take input from the user
// store the value at third position
cin >> mark[2];


// take input from the user
// insert at ith position
cin >> mark[i-1];

// print first element of the array
cout << mark[0];

// print ith element of the array
cout >> mark[i-1];
<час>

Пример 1. Отображение элементов массива

#include <iostream>
using namespace std;

int main() {
    int numbers[5] = {7, 5, 6, 12, 35};

    cout << "The numbers are: ";

    //  Printing array elements
    // using range based for loop
    for (const int &n : numbers) {
        cout << n << "  ";
    }


    cout << "\nThe numbers are: ";

    //  Printing array elements
    // using traditional for loop
    for (int i = 0; i < 5; ++i) {
        cout << numbers[i] << "  ";
    }

    return 0;
}

Вывод

The numbers are: 7  5  6  12  35
The numbers are: 7  5  6  12  35

Здесь мы использовали for цикл для итерации от i = 0 до i = 4 . На каждой итерации мы печатали numbers[i] .

Мы снова использовали диапазон, основанный на цикле for, для вывода элементов массива. Чтобы узнать больше об этом цикле, см. C++ Ranged for Loop.

Примечание. В нашем цикле на основе диапазона мы использовали код const int &n вместо int n как объявление диапазона. Однако const int &n предпочтительнее, потому что:

  1. Используя int n просто копирует элементы массива в переменную n во время каждой итерации. Это не эффективно для памяти.

    &n , однако использует адрес памяти элементов массива для доступа к их данным, не копируя их в новую переменную. Это экономит память.
  2. Мы просто печатаем элементы массива, не изменяя их. Поэтому мы используем const чтобы случайно не изменить значения массива.
<час>

Пример 2. Получение входных данных от пользователя и сохранение их в массиве

#include <iostream>
using namespace std;

int main() {
    int numbers[5];

    cout << "Enter 5 numbers: " << endl;

    //  store input from user to array
    for (int i = 0; i < 5; ++i) {
        cin >> numbers[i];
    }

    cout << "The numbers are: ";

    //  print array elements
    for (int n = 0; n < 5; ++n) {
        cout << numbers[n] << "  ";
    }

    return 0;
}

Вывод

Enter 5 numbers: 
11
12
13
14
15
The numbers are: 11  12  13  14  15

Мы снова использовали for цикл для итерации от i = 0 до i = 4 . На каждой итерации мы получали данные от пользователя и сохраняли их в numbers[i]. .

Затем мы использовали другой for цикл для печати всех элементов массива.

<час>

Пример 3. Отображение суммы и среднего значения элементов массива с использованием цикла for

#include <iostream>
using namespace std;

int main() {
    
    // initialize an array without specifying size
    double numbers[] = {7, 5, 6, 12, 35, 27};

    double sum = 0;
    double count = 0;
    double average;

    cout << "The numbers are: ";

    //  print array elements
    // use of range-based for loop
    for (const double &n : numbers) {
        cout << n << "  ";

        //  calculate the sum
        sum += n;

        // count the no. of array elements
        ++count;
    }

    // print the sum
    cout << "\nTheir Sum = " << sum << endl;

    // find the average
    average = sum / count;
    cout << "Their Average = " << average << endl;

    return 0;
}

Вывод

The numbers are: 7  5  6  12  35  27
Their Sum = 92
Their Average = 15.3333

В этой программе:

  1. Мы инициализировали двойник массив с именем числа но без указания его размера. Мы также объявили три двойных переменных sum , количество и среднее .

    Здесь sum =0 и count = 0 .
  2. Затем мы использовали диапазон for цикл для печати элементов массива. На каждой итерации цикла мы добавляем текущий элемент массива в sum .
  3. Мы также увеличиваем значение count. по 1 в каждой итерации, чтобы мы могли получить размер массива к концу цикла for.
  4. После вывода всех элементов мы печатаем сумму и среднее значение всех чисел. Среднее число задается как average = sum / count;

Примечание. Мы использовали диапазон for цикл вместо обычного for петля.

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

Но диапазон for цикл не требует таких спецификаций.

<час>

Выход за пределы массива C++

Если мы объявим массив размером 10, то массив будет содержать элементы с индексом от 0 до 9.

Однако, если мы попытаемся получить доступ к элементу с индексом 10 или более 10, это приведет к неопределенному поведению.


Язык C

  1. С# Массивы
  2. С# многомерный массив
  3. Зубчатый массив С#
  4. Операторы С++
  5. С++ Комментарии
  6. Передача массива в функцию в программировании на C++
  7. Массивы копирования Java
  8. Массивы в C++ | Объявить | Инициализировать | Указатель на примеры массивов
  9. C++ динамическое выделение массивов с примером
  10. MATLAB — Массивы