std::map и std::set: каждая запись в отдельном узле дерева поиска.">
Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpSpNdInr 167 of 696 menu
◀ ▶

Введение в узлы словаря в C++

Отдельный узел на запись держат std::map и std::set: каждая запись в отдельном узле дерева поиска.

Узел можно отцепить от одного контейнера и перенести в другой без копирования ключа и значения. Для словаря тип узла связан с std::map::node_type; у множества - с std::set::node_type. Подключите #include <map> или #include <set>.

Метод extract по ключу вырывает узел: пара исчезает из исходного словаря, а результат хранит ключ и значение до вставки куда-то еще. Запишем словарь, извлечем узел и проверим, что ключа больше нет:

#include <map> std::map<std::string, int> ages = {{"Ann", 27}, {"Bob", 31}}; auto node = ages.extract("Ann"); std::cout << node.key() << " " << node.mapped() << "\n"; std::cout << ages.count("Ann") << "\n";

На экран попадает имя и число из узла, а вторая строка печатает 0: словарь ages уже не содержит ключ "Ann".

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