提问者:小点点

为什么std::next在使用空映射的开始时卡住


这段代码卡住了。 有人能给个线索吗?

map<int,char> m;
auto begin=m.begin() // {first=0, second=0, '\000'}
auto end=m.end() // {first=0, second=0, '\000'}
auto it=std::next(m.begin(),1); // it stucked

共1个答案

匿名用户

您不能对无效的迭代器或指向end()的迭代器调用std::next。 这是未定义的行为。