Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpOpObMp 27 of 150 menu
◀ ▶

Словарь объектов в C++

Словарь объектов хранит пары «ключ - объект». По ключу находят нужный экземпляр без перебора всего набора.

Тип записывают как std::map<std::string, User>. Пары задают в фигурных скобках через запятую. Запишем класс User:

#include <iostream> #include <map> #include <string> class User { public: std::string name; int age; User(std::string name, int age) : name(name), age(age) {} };

Создадим словарь объектов и выведем возраст по ключу john:

int main() { std::map<std::string, User> users = { {"john", User("john", 21)}, {"eric", User("eric", 22)} } ; std::cout << users["john"].age << "\n"; return 0; }

Пустой словарь заполняют оператором []: ключ слева, объект справа. Запишем класс User:

#include <iostream> #include <map> #include <string> class User { public: std::string name; int age; User(std::string name, int age) : name(name), age(age) {} };

Создадим пустой словарь, добавим записи и выведем имя по ключу:

int main() { std::map<std::string, User> users; users["john"] = User("john", 21); users["eric"] = User("eric", 22); std::cout << users["john"].name << "\n"; return 0; }

Цикл по словарю перебирает пары ключ и значение. Запишем класс User:

#include <iostream> #include <map> #include <string> class User { public: std::string name; int age; User(std::string name, int age) : name(name), age(age) {} };

Создадим словарь и выведем ключ и имя каждого пользователя:

int main() { std::map<std::string, User> users = { {"a", User("john", 21)}, {"b", User("eric", 22)} } ; for (const auto& pair : users) { std::cout << pair.first << ": " << pair.second.name << "\n"; } return 0; }

Создайте std::map<std::string, User>: ключи "one" и "two", значения - объекты User с разными именами. Выведите возраст пользователя по ключу "one".

Сделайте класс City с названием и населением в конструкторе. Создайте словарь таких объектов, добавьте три города с разными ключами и выведите названия всех городов в цикле.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить