非反復版、たとえば、 all_ofは次のように書くことができます:C++ copy_if、トランスフォームなどの機能版
template <class Container, class UnaryPredicate>
bool all_of(Container s, UnaryPredicate f) {
return all_of(s.begin(), s.end(), f);
}
しかし、私はあなたがコンテナを返すアルゴリズムで同じことをすることはできないと思いますか?
template <class Container, class UnaryPredicate>
Container copy_if(Container, UnaryPredicate);
実装は限り中間結果を保持するためのベクターを使用するなどだが、ベクトルのテンプレートパラメータを指定する方法の欠如につまずいに私が得た最も近いです。私は行方不明のものがありますか?
何おそらく必要です範囲ライブラリhttp://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4128.html – Slava
一時的な結果を保持するために 'ベクトル 'を使う理由は?コンテナの広告は直接? – Holt
@Holt Containerを直接使用しようとしたとき、std :: setの場合は動作しませんでした。コンパイラはsetのイテレータが読取り専用であると思っていたようですが、それは意味をなさないものです。 – rwallace