void func(forward_list &lst, string s1, string s2)
{
auto current = lst.begin();
auto prev = lst.before_begin();
while (*current != s1 && current != lst.end())
prev = current++;
if (current != lst.end())
lst.insert_after(current, s2);
else
lst.insert_after(prev,s2);
}
第一中情況無差錯,第二種情況出現forward_list iterator not dereferencable的提示,我
的原意是用prev存儲指向最後一個元素的迭代器。
此題由我自己回答吧,樓上全答錯了。while循環的判斷條件中當current到達end()後對end()進行了取值操作,因此引發錯誤。