我试图通过定义为下面的一个地图迭代迭代:“不匹配操作员=”试图通过在地图C++
std::map< size_type, std::pair<size_t, unsigned int> > ridx_;
现在,我试图通过ridx_迭代(这是在以下朋友函数的类)的私有成员其中重载操作者< <
std::ostream& operator<<(std::ostream &os, const SMatrix &m)
{
std::map< size_type, std::pair<size_t, unsigned int> >::iterator it;
//The following is line 34
for (it = m.ridx_.begin(); it != m.ridx_.end(); it++)
os << it->first << endl;
return os;
}
然而克++有错误出来:
SMatrix.cpp:34: error: no match for 'operator=' in 'it = m->SMatrix::ridx_.std::map<_Key, _Tp, _Compare, _Alloc>::begin with _Key = unsigned int, _Tp = std::pair, _Compare = std::less, _Alloc = std::allocator > >' /usr/include/c++/4.3/bits/stl_tree.h:152: note: candidates are: std::_Rb_tree_iterator > >& std::_Rb_tree_iterator > >::operator=(const std::_Rb_tree_iterator > >&) make: * [myTest] Error 1
我在做什么错?
啊,我明白了,谢谢堆! – Arvin
我梦想有一天,错误消息可以被熟悉C++的人所不熟悉的人阅读。 – 2017-04-03 17:16:24