【发布时间】:2014-01-24 12:28:48
【问题描述】:
我目前正在尝试为 list 编写一个循环。我的代码是:
template<typename T>
void Bubblesorting(list<T> & mylist)
{
typename T::const_iterator it1;
typename T::const_iterator it2;
for(it1=mylist.begin();it1!=mylist.end();it1++)
for(it2=mylist.begin();it2!=mylist.end()-(it1-begin());it2++)
if((*(std::next(it2,1))<*it2)
swap((*(std::next(it2,1)),*it2);
cout << *it2 << ' ';
}
编译失败:
error C2958: the left parenthesis '(' was not matched correctly
您能帮我找出问题出在哪里吗?如何为列表元素编写一个 for 循环?
【问题讨论】:
-
列表迭代器不是随机访问,因此
+运算符将不起作用,并且您在尝试在方法内对其进行变异时传递了对const容器的引用。
标签: c++ list function for-loop