2012-04-02 10 views
-1

std :: iterator_traitsなどの構造体を作成する方法を教えてください。ただし、コンテナの種類についての情報が必要です。あなたが示唆している何イテレータからコンテナ型(シーケンスまたはアソシエーティブ)をディスパッチする方法は?

+1

あなたは何を達成しようとしていますか?すなわち、どの問題を解決しようとしていますか? – Naveen

+0

問題:remove_ifアルゴリズムをコンテナに適用する必要があるかどうか。 – user1290126

答えて

1

は可能か無意味のどちらかではありません:はからコンテナに関する情報を持っていない普通のイテレータ以来

template <typename Iter> void my_algo(Iter begin, Iter end) 
{ 
    typedef typename std::iterator_traits<Iter>::value_type; 
    // ...        ^^^^^^ 
} 

:イテレータの特性は既存のイテレータ型に適用されます彼らは得られた、その特性にそのようなインターフェイスを追加する少しのポイントがあります:形質はちょうどあなたを助けるタイプからの情報を抽出しますが、あなたがたった今の情報は存在しません。

+0

きれいにする:これはバグではなく機能です。コンテナと独立したイテレータを持つことは、SDLの柔軟性のための主要な柱の1つです。 – ComicSansMS

関連する問題