Как определить эквивалентность между `range::view` объектом и`std::vector`?
Я использую отличную библиотеку range-v3. Одна из моих функций возвращает ranges::view
объект, который я хотел бы сравнить с std::vector
, Конечно, я могу сравнить поэлементно, но должен быть лучший способ.
Как определить эквивалентность между
ranges::view
объект иstd::vector
?
1 ответ
Решение
Если вы хотите узнать, относятся ли два диапазона к последовательностям равных элементов, передайте их ranges::equal
алгоритм ( ДЕМО):
int main() {
std::vector<int> vec{5,4,3,2,1,0};
assert(ranges::equal(vec, ranges::view::iota(0, 6) | ranges::view::reverse));
}