C++에서 STL 반복자 값을 출력하려고 할 때 문제가 있습니다. 다음 코드는 오류가 발생하지 않습니다 -에 상관없이 내가 사용하는거야 어떤 템플릿 대상 :STL 벡터의 반복자 값을 직접 출력 할 수 없습니다.
이template <typename T>
void outputVector(vector<T> &v)
{
typename vector<T>::const_iterator iter;
for(iter = v.begin(); iter != v.end(); iter++)
{
cout << *iter << endl;
}
메시지는 '연산자 < <'에 대한 일치
가 교체 할 때를위한 L oop with없는 표준 '에 :: < COUT < ITER .__ gnu_cxx :: __ normal_iterator < _Iterator, _Container> :: = CONST _Iterator 노드 * _Container = 표준 : 벡터 연산자 *는> '
for(iter = v.begin(); iter != v.end(); iter++)
{
T t = *iter;
cout << t << endl;
}
모든 것이 잘 작동합니다.
문제의 증상이 있습니까? 사용 된 클래스 "노드는"operator<<
두 번째 인수에 대해 const
에 대한 참조를 가지고하지 귀하의
ostream & operator<<(ostream &o, Node &n)
{
o << "Hello World" << endl;
return o;
}
에 의해 당신에게 가져? – kennytm
실제 코드를 게시 하시겠습니까? –
'어떤 템플릿 타겟이든 상관없이 내가 사용하려고합니다. ' –