范围v3。两个范围之间的差异

时间:2017-03-13 20:32:33

标签: c++ range-v3

我试图让两个范围之间有所区别,但运气不佳。 像

这样的东西
vector<int> l{ 1,5,6 };
auto diff = views::ints(1,10) - view::all( l );
==> Range<int> { 2,3,4,7,8,9 }
顺便说一下。在range-v3上有没有好的文章?什么让我更聪明?

感谢。

1 个答案:

答案 0 :(得分:1)

您正在寻找set_difference算法或其懒惰的view版本:

#include <range/v3/view/iota.hpp>
#include <range/v3/view/set_algorithm.hpp>
#include <iostream>
#include <vector>

int main() {
    std::vector<int> l{ 1,5,6 };
    auto diff = ranges::view::set_difference(ranges::view::ints(1,10), l);
    std::cout << diff << '\n'; // [2,3,4,7,8,9]
}