2013-04-10 96 views
-1

我有以下模板類。模板類中的迭代器

template <typename _Type, typename _Comparator = equal_to<_Type> > 
class CSearch 
{ 
... 
}; 

它應該存儲STL的東西,如列表,集或字符串。 我存儲在私有類成員的所有元素(例如字符串):

map<int,_Type> seqs; 

現在我想用迭代器,但與< _Type> ::爲const_iterator問題。

template <typename _Type, typename _Comparator> 
void CSearch<_Type,_Comparator>::Foo1(int id, const _Type & needle) 
{ 
seqs.insert(make_pair(id,needle)); 

for(_Type::const_iterator it=seqs[0].begin();it!=seqs[0].end();it++) 
cout<<*it<<" "; 

cout<<endl; 
} 

或類比

for(map<int,_Type>::const_iterator it=seqs.begin();it!=seqs.end();it++) 
cout<<*it<<" "; 
+0

「但存在問題<_Type> :: const_iterator」 - *什麼問題?* – Xeo 2013-04-10 11:15:24

+0

「有問題」。大。幻想探索它?然後解釋給我們看?否則,夥計,恐怕你只是一個[_help vampire_](http://slash7.com/2006/12/22/vampires/)! – 2013-04-10 11:15:29

+0

可能重複的[一些問題,我真的不能打擾](http://stackoverflow.com) – 2013-04-10 11:16:14

回答

1

<_Type>::const_iterator是一個依賴型。

改爲將其作爲typename <_Type>::const_iterator