gpt4 book ai didi

c++ - 当迭代器不是随机访问时,如何在映射结束之前停止迭代 "n"?

转载 作者:太空狗 更新时间:2023-10-29 20:07:00 26 4
gpt4 key购买 nike

我想用迭代器遍历 C++ 中的一个映射,但不是一直到最后。问题是,即使我们可以用迭代器进行基本操作,我们也不能将迭代器与整数相加或比较。如何编写以下说明? (final 是一个 map ;window,一个整数)

for (it=final.begin(); it!=final.end()-window; it++)

最佳答案

您不能直接从映射迭代器中减去,因为这是一项昂贵的操作(实际上执行 --iter 所需的次数)。如果你真的想这样做,你可以使用标准库函数'advance'。

map<...>::iterator end = final.end();
std::advance(end, -window);

这将使您的窗口结束。

关于c++ - 当迭代器不是随机访问时,如何在映射结束之前停止迭代 "n"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5132272/

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