【问题标题】:How to determine equivalence between `ranges::view` object and `std::vector`?如何确定`ranges::view`对象和`std::vector`之间的等价性?
【发布时间】:2017-12-21 21:42:07
【问题描述】:

我正在使用出色的 range-v3 库。我的一个函数返回一个ranges::view 对象,我想将它与std::vector 进行比较。当然,我可以逐个元素进行比较,但一定有更好的方法。

如何判断ranges::view对象与std::vector等价?

【问题讨论】:

    标签: compare comparison stdvector range-v3


    【解决方案1】:

    如果您想知道两个范围是否引用相等元素的序列,请将它们传递给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 库,但通常有详尽完整的库,很难知道在哪里可以找到答案。感谢您的帮助!
    猜你喜欢
    • 2011-05-06
    • 2011-02-25
    • 2017-04-16
    • 1970-01-01
    • 1970-01-01
    • 2011-11-07
    • 2015-05-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多