我在嘗試輸出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;
}
該消息是
敵不過「操作< <」在「的std :: COUT < < ITER .__ gnu_cxx :: __ normal_iterator < _Iterator,_container> ::運算符*與_Iterator =常數節點*,_container =標準::矢量>」
更換當爲升與
for(iter = v.begin(); iter != v.end(); iter++)
{
T t = *iter;
cout << t << endl;
}
一切正常。
你有什麼問題可能是什麼問題?所使用的類「節點」重載通過
ostream & operator<<(ostream &o, Node &n)
{
o << "Hello World" << endl;
return o;
}
你怎麼重載''<<運營商爲'Node'類型? – kennytm 2012-01-29 16:13:28
你會發布一些真實的代碼嗎? – 2012-01-29 16:14:43
'不管我要使用什麼模板目標'錯誤 – 2012-01-29 16:16:50