嘿我有一个包含值的列表,我想用const&打印出来。我可以通过引用它来做到这一点但是当我把const放入时我得到一个错误。我不确定为什么会这样,因为代码不会编辑列表。这是我的代码。
// Prints out the list declared
template<typename DATA_TYPE>
void print(const list<DATA_TYPE> &myList){
for(list<DATA_TYPE>::iterator pos = myList.begin(); pos != myList.end(); pos++){
DATA_TYPE currentWord = *pos;
cout << currentWord << " ";
}
}
如果您还可以查看错误背后的逻辑,那就太酷了,谢谢。
答案 0 :(得分:6)
由于您的list
被声明为const
,因此您需要使用const_iterator
:
list<DATA_TYPE>::const_iterator pos
P.S。为了将来参考,请复制并粘贴您在问题中遇到的任何编译器错误。
答案 1 :(得分:2)
使用const_iterator
,而不是迭代器。