#include <iostream>
#include <vector>
#include <boost/range/algorithm.hpp>
#include <boost/range/algorithm_ext.hpp>
void s( int n ) { std::cout << n << ","; }
int main() {
std::vector<int> v;
for( int i = 0; i < 20; ++i ) {
v.push_back( (21-i) / 2 );
}
boost::for_each( v, s );
std::cout << std::endl;
boost::erase(v, boost::unique<boost::return_found_end>(boost::sort(v)));
// boost::return_next_end は、document 間違い?
// と思ったら、++i と消去する寸前にイテレータをインクリメントしてました… orz
// http://www.boost.org/doc/libs/1_49_0/libs/range/doc/html/range/reference/algorithms/introduction.html
/*
boost::sort(v);
boost::erase(v, boost::unique<boost::return_next_end>(v));
*/
boost::for_each( v, s );
return 0;
}
出力
10,10,9,9,8,8,7,7,6,6,5,5,4,4,3,3,2,2,1,1
1,2,3,4,5,6,7,8,9,10,
// コメントアウトを実行すると
1,2,3,4,5,6,7,8,9,10,6
追記:ドキュメントを良く見たら、間違いではなかったので訂正しました。
0 件のコメント:
コメントを投稿