Массив структур 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
РЕКЛАМА от Яндекса. Может быть недоступна в вашем регионе
Конец рекламы. Если там пусто считайте это рекламой моей телеги