oven::uniqued
Boostネタも尽きてきたのでPStade.Ovenでも調べていこうと思います。
uniquedはソート済みの範囲をユニーク(重複なし)にするRangeアダプタです。
sorted(ソートするRangeアダプタ)と組み合わせて使用します。
#include <iostream> #include <boost/foreach.hpp> #include <pstade/oven/as_c_str.hpp> #include <pstade/oven/sorted.hpp> #include <pstade/oven/uniqued.hpp> #define foreach BOOST_FOREACH using namespace pstade::oven; int main() { foreach (char c, as_c_str("314123")|sorted|uniqued) { std::cout << c << std::endl; } }
1 2 3 4
ちなみにas_c_strはnull終端文字列をRandom Access Rangeにするために使用しています。
foreach (char c, std::string("314123")|sorted|uniqued)
としたらVC9 SP1で落ちました。GCC 4.4では動いた。
【参考】