typedef für den Iterator ohne typename
-
Hallo,
kann mir jemand freundlicherweise sagen, ob ich einen typedef für einen
iterator erstellen kann, ohne sich auf einen bestimmten typ z.Bsp int zu fixieren?so gehts ohne Probleme:
//typedef int iterator typedef std::vector<int> CONTAINER; typedef CONTAINER::iterator ITERATOR;
//im main vector<int> vTemp; for (int i=0;i<=100 ;i++) vTemp.push_back(i); for (ITERATOR iter=vTemp.begin();iter!=vTemp.end() ;iter++){;}
//so würde ich es gerne tun
//für unterschiedliche typen
//im main funktionierts allerdings nichttypedef std::vector<class T> CONTAINER; typedef CONTAINER::iterator ITERATOR;
Danke im voraus!
-
Nein, das geht so nicht, da der Iterator vom Typ des Containers abhängt. (denn dort kommt der Iteratortyp ja her ;-))
Was Du machen kannst ist sowas hier:
template <class Container> void doSomething( Containter& c) { typename C::iterator it( c.begin()); // mache irgendwas mit it... }
-
entschuldige die Typos... es ist noch früh ,
template <class Container> void doSomething( Container& c) { typename Container::iterator it( c.begin()); // mache irgendwas mit it... }
-
Da es template-typedefs noch nicht gibt, geht nur sowas:
template<class T> struct foo { typedef typename std::vector<T>::iterator iterator; };