Функция views::split
Функция views::split разбивает исходный диапазон
на последовательность поддиапазонов, используя в качестве
разделителя заданный элемент или другой диапазон.
Первый параметр принимает исходный диапазон, а второй -
разделитель. Возвращается диапазон диапазонов, каждый
элемент которого представляет собой поддиапазон между
вхождениями разделителя. Сам исходный диапазон при этом
не изменяется.
Синтаксис
std::views::split(range, delimiter)
Пример
Давайте разобьём строку "abcde" по символу
'c' и выведем полученные поддиапазоны:
#include <iostream>
#include <string>
#include <ranges>
using namespace std;
int main()
{
string str = "abcde";
for (auto part : str | views::split('c'))
{
for (char ch : part)
{
cout << ch;
}
cout << endl;
}
return 0;
}
Результат выполнения кода:
"ab"
"de"
Пример
Давайте разобьём строку "1234512345" по строке-разделителю
"123" и выведем полученные поддиапазоны:
#include <iostream>
#include <string>
#include <ranges>
using namespace std;
int main()
{
string str = "1234512345";
string delim = "123";
for (auto part : str | views::split(delim))
{
for (char ch : part)
{
cout << ch;
}
cout << endl;
}
return 0;
}
Результат выполнения кода:
45
45
Смотрите также
-
функция
views::join,
которая объединяет диапазон диапазонов в один -
функция
views::filter,
которая отбирает элементы по условию -
функция
views::transform,
которая преобразует элементы диапазона -
функция
views::all,
которая создаёт представление из диапазона