Массив структур 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++
Share in social media: