Функция views::keys
Функция views::keys создает представление, которое проецирует каждый элемент диапазона на его первый компонент, то есть на ключ. Это особенно удобно при работе с ассоциативными контейнерами, такими как std::map, где каждый элемент представляет собой пару "ключ-значение". Функция не принимает дополнительных параметров, кроме самого диапазона, и возвращает представление, элементами которого являются ключи исходного диапазона.
Синтаксис
std::views::keys(range)
Пример
Давайте создадим std::map с парами чисел и получим представление только из ключей:
#include <iostream>
#include <map>
#include <ranges>
using namespace std;
int main()
{
map<int, string> m = {{1, "a"}, {2, "b"}, {3, "c"}};
for (auto key : views::keys(m))
{
cout << key << " ";
}
return 0;
}
Результат выполнения кода:
1 2 3
Пример
Давайте применим views::keys к вектору пар строк и выведем только ключи:
#include <iostream>
#include <vector>
#include <ranges>
#include <string>
using namespace std;
int main()
{
vector<pair<string, int>> v = {{"a", 1}, {"b", 2}, {"c", 3}};
for (const auto& key : views::keys(v))
{
cout << key << " ";
}
return 0;
}
Результат выполнения кода:
"a" "b" "c"
Смотрите также
-
функция
views::values,
которая извлекает значения из пар -
функция
views::transform,
которая применяет функцию к каждому элементу -
функция
views::filter,
которая фильтрует элементы по условию -
функция
views::all,
которая создает представление из диапазона