C++ 为什么std::next在feed开始时被卡住

C++ 为什么std::next在feed开始时被卡住,c++,stl,iterator,std,next,C++,Stl,Iterator,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 map-m; 自动开始=m.begin()/{first=0,second=0,'\000'} auto end=m.end(

这段代码卡住了。有人能提供线索吗

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
map-m;
自动开始=m.begin()/{first=0,second=0,'\000'}
auto end=m.end()/{first=0,second=0,'\000'}
auto it=std::next(m.begin(),1);//它嘎嘎作响

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

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

你说的“卡住”是什么意思?无论如何,我认为不允许您增加
.end()
迭代器(它会导致UB)。您希望它做什么?您所说的“卡住”是什么意思?无论如何,我不认为你可以增加一个
.end()
迭代器(它会导致UB)。你希望它做什么?嗯,听起来有点奇怪。不能
stl
std::next
的末端
迭代器做点什么吗?当然,它可以做点什么。这是未定义的行为。它可能“卡住”,它可能会使你的程序崩溃,它可能会重新格式化你的硬盘,…嗯。听起来有点奇怪。不能
stl
std::next
的末端
迭代器做点什么吗?当然,它可以做点什么。这是未定义的行为。它可以“卡住”,它可以使你的程序崩溃,它可以重新格式化你的硬盘。。。。。