gpt4 book ai didi

c++ - 如何在增量循环中构造 std::list 迭代器

转载 作者:可可西里 更新时间:2023-11-01 18:04:14 39 4
gpt4 key购买 nike

我正在尝试对 std::list 进行双循环以对每对元素进行操作。但是,我在初始化第二个迭代器时遇到了一些问题。我想写的代码是:

for(std::list<int>::iterator i = l.begin(); i != l.end(); ++i) {
for(std::list<int>::iterator j = i+1; j != l.end(); ++j) {
...
}
}

这行不通,因为列表迭代器不是随机访问的,所以您不能 +1。但是我在寻找一个简洁的替代品时遇到了一些麻烦;编译器似乎对 std::list<int>::iterator j(i)++; 不太满意我对此抱有希望。实现我想要的似乎我将不得不有一些笨拙的额外增量,这不适合 for 循环的结构。

有明显的替代方案(例如,使用 vector !)但在我看来,应该有一些相当巧妙的方法来做到这一点,但我目前还没有看到。

在此先感谢您的帮助:)

最佳答案

for(std::list<int>::iterator i = l.begin(); i != l.end(); ++i) {
std::list<int>::iterator j = i;
for(std::advance(j, 1); j != l.end(); ++j) {
...
}
}

关于c++ - 如何在增量循环中构造 std::list 迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2269546/

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