之前写了下面这样的一段代码(数据类型简化了一下,功能类似),结果老是报错误 "iterator can not dereference" 或者是 "iterators incompatible"的运行时错误.后来找到了问题的关键是一个疏忽,但是又容易犯,这里记录下方便以后遇到类似的问题给自己提个醒。
#include <iostream>
#include <list>
using namespace std;
class MyList
{
public:
MyList(){}
void addElement(int e)
{
m_list.push_back(e);
}
list<int> getList()
{
return m_list;
}
private:
list<int> m_list;
};
int main()
{
MyList myList;
myList.addElement(1);
myList.addElement(2);
myList.addElement(3);
for (auto iter = myList.getList().cbegin();
iter != myList.getList().cend(); ++iter)
{
cout << *iter << " ";
}
return 0;