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

Introduction

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

↓ Contents ↓
Introduction
Создаём структуру
Поиск по массиву структур
Пример использования

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

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

У каждого квадрата должна быть координата 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++
Как создать пустую строку в C++
Errors C++
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: