🏠 | 💻 IT | Программирование Code | C++ |

Массив структур C++

Введение

Существует множество учебных материалов о структурах и о массивах. В этой статье я пока что расскажу только об одном частном случае объявления нескольких структур с помощью массива. Если у Вас есть уточняющие комментарии буду рад их прочитать.

Создаём структуру

Наша задача описать положение четырёх точек в пространстве. Если более конкретно - четырех квадратов на сетке.

У каждого квадрата должна быть координата x и y.

struct Point { int x; int y; }; Point squares[4]; // четыре элемента типа Point

Создано четыре структуры типа Point каждая из которых находится в массиве squares

Перебрать все координаты можно циклом

for (int i = 0; i < 4; i++) { std::cout << squares[i].x << std::endl; std::cout << squares[i].y << std::endl; }

Скорее всего Вы получите столбец из восьми нулей или восьми одинаковых мусорных значений.

Заполним массив значениями

for (int i = 0; i < 4; i++) { squares[i].x = i; squares[i].y = i+10; }

Поиск по массиву структур

int s = 11; // Хотим проверить есть ли // среди элементов массива число 11 // и где оно или они, если их несколько. bool Found = false; for (int i = 0; i < 4; i++) { if (squares[i].x == s) { std::cout << squares[i].x << " = " << s << " index is " << i << " x" << std::endl; Found = true; } else if (squares[i].y == s) { std::cout << squares[i].y << " = " << s << " index is " << i << " y" << std::endl; Found = true; } else { continue; } } if (Found == false) { std::cout << s << " is not found" << std::endl; }

Пример использования

Мне массив структур пригодился для тетриса:

Тетрис на C++ и SFML2

Связанные статьи

Статьи о C++
Вектор. Часть 0.
Вектор. Часть 1.
Вектор. Часть 2.
Указатели
Классы
SFML
Тетрис на C++ с библиотекой SFML2
SDL
Как узнать тип переменной C++
Решение задач на C++

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

Поиск по сайту
Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящуюю по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: