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