Адаптер keys смотрит на пары ключ-значение
и оставляет для обхода только первое поле. Карта
не меняется.
Подключите #include <map> и #include <ranges>.
Запишем std::map, возьмем ключи через
конвейер и выведем их:
std::map<std::string, int> caps = {
{"ru", 1},
{"en", 2},
};
auto names = caps | std::views::keys;
for (const auto& k : names) {
std::cout << k << "\n";
}
Постройте карту из трех пар строка-число, обойдите «адаптером keys» и выведите ключи.