Однако это разрушительный процесс для вектора v. Я хотел бы использовать представление, которое пропускает аналогичные соседние элементы, не разрушая вектор, т.е. что-то вроде:
auto vw = v | skip_adjacent_items;
fmt::println ("{}", vw);
// [1, 2, 1, 3, 4, 5, 4]
Есть ли что-то подобное в std, в частности в части std::views?
Самое близкое, что я вижу, это std::views::filter, но он фильтрует элемент независимо от предыдущего итерированного элемента.>
const auto ret = std::ranges::unique(v); v.erase(ret.begin(), ret.end()); fmt::println ("{}", v); // [1, 2, 1, 3, 4, 5, 4] } [/code] Однако это разрушительный процесс для вектора v. Я хотел бы использовать представление, которое пропускает аналогичные соседние элементы, не разрушая вектор, т.е. что-то вроде: [code]auto vw = v | skip_adjacent_items; fmt::println ("{}", vw); // [1, 2, 1, 3, 4, 5, 4] [/code] Есть ли что-то подобное в std, в частности в части std::views? Самое близкое, что я вижу, это std::views::filter, но он фильтрует элемент независимо от предыдущего итерированного элемента.>