jlconlin
jlconlin

Reputation: 15084

How to determine equivalence between `ranges::view` object and `std::vector`?

I'm using the excellent range-v3 library. One of my functions returns a ranges::view object which I'd like to compare to a std::vector. Of course, I can compare element-by-element, but there's got to be a better way.

How to determine equivalence between ranges::view object and std::vector?

Upvotes: 2

Views: 217

Answers (1)

Casey
Casey

Reputation: 42584

If you want to know if two ranges refer to sequences of equal elements, pass them to the ranges::equal algorithm (DEMO):

int main() {
  std::vector<int> vec{5,4,3,2,1,0};
  assert(ranges::equal(vec, ranges::view::iota(0, 6) | ranges::view::reverse));
}

Upvotes: 2

Related Questions