c++ - How to return an Iterator--list<T>:: iterator, as function return value -
i implementing abstract hash-table container. find()
function defined , works fine, shown below:
template <class hashedobj> hashedobj& hashtable<hashedobj>::find(const hashedobj &x){ typename list<hashedobj>::iterator itr; itr = std::find(thelist[hash(x)].begin(), thelist[hash(x)].end(), x); if(itr == thelist[hash(x)].end()) return item_not_found; else return *itr; }
however, want define function called findaddress()
returns itr
(the iterator) instead of *itr
. code is:
typedef list<hashedobj>::iterator iterator; template <class hashedobj> iterator hashtable<hashedobj>::find(const hashedobj &x){ return std::find(thelist[hash(x)].begin(), thelist[hash(x)].end(), x); }
the above complain that:
type std::list<hashedobj, std::allocator<_chart> > not derived type hashedtable<hashedobj>.
basically want return iterator type has been defined std
before.
i no expert, both functions have same name in code given, while accepting same parameter. normal? also, assume mean "function called findaddress()
" instead of "class called findaddress()
".
Comments
Post a Comment