Daily bit(e) C++. std::views::keys, std::views::values

Добавлено 30 сентября 2026 в 21:32

Daily bit(e) C++ 131, представления из стандарта C++20 для ассоциативных контейнеров – std::views::keys и std::views::values.

Daily bit(e) C++

std::views::keys и std::views::values из стандарта C++20 – это специализированные представления, обеспечивающие доступ к ключам и значениям ассоциативных контейнеров.

Напоминание: в контейнерах std::set и std::unordered_set (а также в их версиях «multi-») элементами являются ключи, а не значения.

#include <unordered_map>
#include <ranges>

int main() {
    std::unordered_map<int,int> data{{1,7}, {2,8}, {3,9}};

    for (const auto &v : data | std::views::keys) 
    {
        // итерация по 1, 2, 3
    }

    for (const auto &v : data | std::views::values) 
    {
        // итерация по 7, 8, 9
    }
}

Пример на Compiler Explorer

Теги

C++ / CppDaily bit(e) C++Программирование