我想用迭代器遍历C++中的映射,但不是一直到最后.问题是即使我们可以使用迭代器进行基本操作,我们也无法使用整数添加或比较迭代器.我该如何写下面的说明?(final是地图; window,整数)
for (it=final.begin(); it!=final.end()-window; it++)
Run Code Online (Sandbox Code Playgroud)
你不能直接从map迭代器中减去,因为它是一个昂贵的操作(实际上做了 - 所需的次数).如果你真的想要这样做,你可以使用标准库函数'advance'.
map<...>::iterator end = final.end();
std::advance(end, -window);
Run Code Online (Sandbox Code Playgroud)
这会让你结束你的窗口.