2013-04-10 12 views
-1

다음 템플릿 클래스가 있습니다.템플릿 클래스의 반복자

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

목록, 설정 또는 문자열과 같은 STL 내용을 저장해야합니다.

map<int,_Type> seqs; 

가 지금은 반복자를 사용하기를 원하지만 < _Type> :: const_iterator를에 문제가 있습니다 : 나는 private 클래스 멤버 (예를 들어, 문자열에 대한) 모든 요소를 ​​저장합니다.

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

+0

"문제가 있습니다". 큰. 멋진 그것을 탐험? 그럼 우리 한테 설명해 줄거야? 그렇지 않으면, 친구, 당신은 [_help vampire_] (http://slash7.com/2006/12/22/vampires/) 일 뿐이라고 생각합니다! –

+0

[일부 질문의 중복 가능성] 나는 정말로 파고 들지 않을 수 없다.] (http://stackoverflow.com) –

답변

1

<_Type>::const_iterator는 종속 형이다.

typename <_Type>::const_iterator 대신 참조하십시오.

관련 문제