![]() |
Boost.Range |
adjacent_filteredrng | 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