我在使用map
时遇到了迭代器问题。我有一个类型为map<int, vector<int> > vpmap;
的map
。我想要遍历整个map
,然后我使用了以下代码:
for (size_t i = 0; i < vpmap.size(); i++) {
{
auto it = vpmap.begin();
it++;
/*code*/
}
这很好。但是当我将 it++
替换为 it=it+1
时,编译器会报错。在使用 vector
时,我以前没有遇到过这种错误。我想知道原因。
for(auto const& [key, val]: vpmap)
的东西。 - The Philomathit = std::advance(it, 1)
替代it = it + 1
。而且,您可以使用任何数字或变量来替代 1,甚至是负数值。 - 273K