如何确定 `ranges::view` 对象和 `std::vector` 之间的等价性?
How to determine equivalence between `ranges::view` object and `std::vector`?
我正在使用出色的 range-v3 库。我的函数之一 returns 一个 ranges::view
对象,我想将其与 std::vector
进行比较。当然,我可以逐个元素进行比较,但必须有更好的方法。
How to determine equivalence between ranges::view
object and std::vector
?
如果您想知道两个范围是否引用相等元素的序列,请将它们传递给 ranges::equal
算法 (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));
}
我正在使用出色的 range-v3 库。我的函数之一 returns 一个 ranges::view
对象,我想将其与 std::vector
进行比较。当然,我可以逐个元素进行比较,但必须有更好的方法。
How to determine equivalence between
ranges::view
object andstd::vector
?
如果您想知道两个范围是否引用相等元素的序列,请将它们传递给 ranges::equal
算法 (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));
}