templates - C++: How to get iterator type from defined container object -


i have code in form:

unordered_set<pair<int,int>,customhash> edges; typedef unordered_set<pair<int,int>,customhash>::iterator edgesit; ... for(auto it=edges.begin();it!=edges.end();it++){     list<edgesit> list; } 

etc. how can avoid defining new type edgesit used in list declaration , in smarter way, example:

list<edges::iterator_type> list; 

intelisense suggests edges::iterator defined typedef std::iterator pair<int,int> iterator. more say, doesn't work. tried use unordered_set::iterator, doesn't work.

edges name of object, not name of class (and namespace etc). can't nested typedef directly edges::iterator.

you can use decltype (since c++11) type want (i.e. unordered_set<pair<int,int>,customhash>). e.g.

list<decltype(edges)::iterator> list; // same list<unordered_set<pair<int,int>,customhash>::iterator> list; 

Comments

Popular posts from this blog

sql server - Cannot query correctly (MSSQL - PHP - JSON) -

php - trouble displaying mysqli database results in correct order -

C++ Linked List -