0
我定義了一個對列表,並希望使用迭代器訪問它們,遵循an example。迭代器在C++中的對列表中?
class A{
private:
list<pair<size_type,size_type> > l_edge_;
public:
void function() const{
list<pair<size_type,size_type> >::iterator Iter_;
Iter_ = l_edge_.begin();
}
}
但是,我收到了編譯錯誤。我該如何解決它?
error: no match for 'operator=' (operand types are 'const iterator
{aka const std::_List_iterator<std::pair<unsigned int, unsigned int> >}' and
'std::list<std::pair<unsigned int, unsigned int> >::const_iterator
{aka std::_List_const_iterator<std::pair<unsigned int, unsigned int> >}')
首先,你可能不希望在你的函數重新申報'l_edge_',因爲這將影響班級成員。 – 2013-02-26 17:00:40
你的編譯器是什麼? [似乎工作](http://liveworkspace.org/code/1s3lcB$4)在GCC 4.7.2。這是你的真實代碼嗎?你不是在調用'cbegin()'嗎? – 2013-02-26 17:00:42
我正在使用gcc48。我發現如果我在函數內部放置列表和迭代器聲明,那就沒有錯誤。如果我將列表聲明作爲類的私有成員,那麼無論迭代器在哪裏聲明,都會出現錯誤。 – Pippi 2013-02-26 17:07:07