gpt4 book ai didi

C++列表迭代器算术替换思路

转载 作者:行者123 更新时间:2023-11-30 02:35:43 24 4
gpt4 key购买 nike

我有一个可以在多个地方访问的列表。在某些情况下,我需要从开始到 (end-n) 元素遍历列表,而在其他情况下,我需要访问整个列表。我在迭代器算法上遇到了麻烦。

我想要可以执行以下操作的东西:

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 不是一个选项,因为我想要从列表开头开始匹配的第一个实例。

这里有没有更好的实现方式?

最佳答案

因为它是一个列表,所以随机访问很慢。幸运的是:

  1. 你总是从头开始,而且
  2. std::list 有一个 size() 方法

这是一种方法:

list<Term>::iterator itr = final.begin();
int to_do = std::max(0, int(final.size()) - n);
for ( ; to_do ; --to_do, ++itr )
{
// code here
}

关于C++列表迭代器算术替换思路,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33372663/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com