我的应用程序在此操作中崩溃:
std::multimap<int, std::string, std::greater<int>> mm;
// insert elements
auto it = mm.end();
std::advance(it, -(mm.size() - 7));
这是崩溃的消息:
Expression: map/set iterator not incrementable
问题是什么?
编辑:当我只写 -1 而不是-(mm.size() - 7)
它没有崩溃时,为什么?请考虑当我调试 mm.size() 时为 8。
编辑2:当我写std::advance(it, -(static_cast<int>(scoresMap.size()) - 7));
它的时候。这是因为multimap的大小类型,但仍然无法猜测是什么原因。