Массив структур 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

Article author: Andrei Olegovich

Похожие статьи
Development на C++
Перегрузка функций
-c: Компиляция
Разбиение кода на части
Вектор
Указатели
Классы
SFML
Тетрис на C++ с библиотекой SFML2
SDL
Как узнать тип переменной C++
Решение задач на C++
Как создать пустую строку в C++
Запросы к REST API на C++
Ошибки C++
Make

Search this site

Subscribe to Telegram channel @aofeed to follow new articles and updates to old ones

Go to channel

@aofeed

Ask a question in the Telegram group

@aofeedchat

Contacts and cooperation:
I recommend our hosting beget.ru
Write to info@urn.su, info@aredel.com if you:
1. Want to write an article for our site or translate an article into your native language.
2. Want to place thematically relevant ads on the site.
3. Ads on my site pass maximum censorship. If you see an ad block unsuitable for school-age children, shocking or misleading - please contact us by e-mail
4. Found a mistake, inaccuracy, bug, etc. on the site. ... .......
5. Articles can be shared on social media by clicking a network icon: