gpt4 book ai didi

c++ - 在 BOOST_FOREACH 循环中访问迭代器

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:09:02 26 4
gpt4 key购买 nike

我有一个 BOOST_FOREACH 循环来遍历列表。不幸的是,我还需要将迭代器缓存到特定项。

typedef List::iterator savedIterator;

BOOST_FOREACH(Item &item, list)
{
// stuff...
if (condition)
savedIterator = &item; // this won't work

// do more stuff...
}

显然我可以使用 list.begin()..list.end() for 循环来做到这一点,但我已经越来越喜欢 BOOST_FOREACH。有办法解决这个问题吗?

最佳答案

这是不可能的,因为您无权访问指向循环内当前项的迭代器。

您可以使用当前项目数据以某种方式从列表中获取迭代器,但我不知道这是否是一个好主意,从性能方面也是如此。

我建议您使用您自己提出的 list.begin() .. list.end() 解决方案,在我看来,这是最容易实现和识别的。

关于c++ - 在 BOOST_FOREACH 循环中访问迭代器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/969496/

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