【发布时间】:2013-05-30 19:27:59
【问题描述】:
我有以下代码:
void endConditionalFlowsBetweenSets(const list<unsigned int>& sourceSet, const list<unsigned int>& endSet){
//TODO: Optimize
//ending previous flows between the two sets
list<unsigned int>::iterator itS;
list<unsigned int>::iterator itE;
for(itS=sourceSet.begin();itS!=sourceSet.end();itS++)
for(itE=endSet.begin();itE!=endSet.end();itE++)
if(*itS!=*itE && linkIndex[*itS][*itE].index==-1)
endFlow(*itS,*itE);
}
编译时出现错误:no known conversion for argument 1 from ‘std::list<unsigned int>::const_iterator {aka std::_List_const_iterator<unsigned int>}’ to ‘const std::_List_iterator<unsigned int>&’
这是为什么呢?我只是通过引用传递一个列表并创建一个迭代器来迭代它。
【问题讨论】:
-
迭代器也需要是
const。
标签: c++ list pass-by-reference