Структуры
Собираем связанные данные в один тип
После урока ты сможешь
- Описывать свои типы через struct
- Инициализировать структуры с назначенными полями
- Хранить структуры в vector и обрабатывать их функциями
Шаг 1 из 7
Связанные данные — вместе
Допустим, программа хранит товары: название, цену и количество. Можно завести три вектора:
std::vector<std::string> names;
std::vector<double> prices;
std::vector<int> quantities;
Но эти данные связаны только тем, что лежат под одинаковыми индексами. Отсортируй один вектор и забудь другой — и цены «уедут» к чужим товарам. Добавишь поле — придётся менять код в десяти местах.
Правильно — описать свой тип, который собирает связанные данные в одно целое:
#include <print>
#include <string>
struct Product {
std::string name;
double price = 0.0;
int quantity = 0;
};
int main() {
Product phone{"Смартфон", 24990.0, 3};
phone.quantity -= 1; // продали один
std::println("{}: {} шт. по {}", phone.name, phone.quantity, phone.price);
std::println("На складе на сумму {:.2f}", phone.price * phone.quantity);
}
struct описывает тип: какие поля есть у каждого товара. Поля называют членами структуры, а доступ к ним идёт через точку: phone.price. После описания Product можно использовать так же, как int или std::string.