![]() |
Boost.Range |
adjacent_filtered
rng | boost::adaptors::adjacent_filtered( bi_pred )boost::make_adjacent_filtered_range( rng, bi_pred )
bi_pred
.
[x,y]
in the returned range,
bi_pred(x,y)
is true
.
#include <boost/range/adaptor/adjacent_filtered.hpp> #include <boost/range/algorithm/copy.hpp> #include <boost/assign.hpp> #include <algorithm> #include <functional> #include <iostream> #include <vector> int main(int argc, const char* argv[]) { using namespace boost::assign; using namespace boost::adaptors; std::vector<int> input; input += 1,1,2,2,2,3,4,5,6; boost::copy( input | adjacent_filtered(std::not_equal_to<int>()), std::ostream_iterator<int>(std::cout, ",")); return 0; }
This would produce the output:
1,2,3,4,5,6
(C) Copyright Neil Groves 2009 (C) Copyright Thorsten Ottosen 2003-2004