我有被在多个地方访问列表。有些情况下,我在列表中从开始到(完-N)元素和其他地方被访问整个列表需要循环。我在迭代器算术中遇到了麻烦。C++列表迭代算法替换的想法
我想要的东西,可以做到以下几点:
int n =10;
for (list<Term>::iterator itr = final.begin(); itr != (final.end()-n); itr++) {
//
}
做以下的伪代码有意义吗?
int N = myList.size() - n;
for (list<Term>::iterator itr = final.begin(),int length_reached=0; itr != (final.end() && length_reached<N; itr++,length_reached++) {
//
}
对我而言,使用rbegin不是一个选项,因为我想从列表的开始处开始匹配的第一个实例。
有没有在这里实现一个更好的办法?
递增运算符是唯一的选择你...通过begin()获得一个迭代器,增加它的大小() - n次。 – basav