Функция views::reverse
Функция views::reverse создает представление,
которое перебирает элементы исходного диапазона
в обратном порядке. В первый параметр мы передаем
диапазон, элементы которого следует обойти в
обратном порядке. Функция не изменяет исходный
диапазон, а лишь создает ленивое представление
поверх него.
Синтаксис
std::views::reverse(range)
Также доступна форма записи через оператор конвейера:
range | std::views::reverse
Пример
Давайте развернем вектор чисел и выведем результат:
#include <iostream>
#include <vector>
#include <ranges>
using namespace std;
int main()
{
vector<int> vec = {1, 2, 3, 4, 5};
for (int num : vec | views::reverse)
{
cout << num << " ";
}
return 0;
}
Результат выполнения кода:
5 4 3 2 1
Пример
Давайте развернем вектор строк и выведем результат
через вызов функции views::reverse:
#include <iostream>
#include <vector>
#include <string>
#include <ranges>
using namespace std;
int main()
{
vector<string> vec = {"a", "b", "c", "d", "e"};
for (const auto& str : views::reverse(vec))
{
cout << str << " ";
}
return 0;
}
Результат выполнения кода:
"e d c b a"
Пример
Давайте применим views::reverse к строке
"abcde" и выведем результат:
#include <iostream>
#include <string>
#include <ranges>
using namespace std;
int main()
{
string str = "abcde";
for (char ch : str | views::reverse)
{
cout << ch;
}
return 0;
}
Результат выполнения кода:
"edcba"
Смотрите также
-
функция
ranges::begin,
которая возвращает итератор на начало диапазона -
функция
ranges::end,
которая возвращает итератор на конец диапазона -
функция
views::filter,
которая фильтрует элементы диапазона -
функция
views::transform,
которая преобразует элементы диапазона