我收到了一個很長的錯誤消息。我環顧四周,這意味着我的迭代器與它正在迭代的列表不同,但它看起來與我一樣!使用相同類型的迭代器時,「操作符=不匹配」
template <typename T1, typename T2>
class Map
{
public:
Map();
bool contains_key(const T1& key) const;
private:
T1 key;
T2 value;
typedef list<Pair<T1, T2> > multiPair;
multiPair pairList;
};
template<typename T1, typename T2>
inline Map<T1, T2>::Map() { }
template<typename T1, typename T2>
bool Map<T1, T2>::contains_key(const T1& key) const
{
typename multiPair::iterator pos;
for(pos = pairList.begin(); pos != pairList.end(); pos++) //error
if(*pos.get_first() == key)
return true;
return false;
}
map1.h:83:31:錯誤:不對應的在「POS =((常量地圖,性病:: basic_string的> *)這一點) '運算符=' - >地圖上的std :: basic_string的> :: pairList.std :: list < _Tp,_Alloc> ::以_Tp = Pair開始,std :: basic_string>,_Alloc = std :: allocator,std :: basic_string >>,std :: list < _Tp,_Alloc > :: const_iterator = std :: _ List_const_iterator,std :: basic_string >>' /usr/lib/gcc/i686-pc-cygwin/4.5.3/include/c++/bits/stl_list.h:114:5:note :候選是:std :: _ List_iterator,std :: basic_string >> & std :: _ List_iterator,std :: basic_string >>> :: operator =(const std :: _ List_iterator,std :: basic_string >> &)
謝謝;我不太瞭解const關鍵字,只是將它粘在那裏,因爲該方法有一個返回值。 – user1390757