我不知道如何删除forward_list的最后一个元素
forward_list<string> names {"fwfew","zhangwne","xiaobew","yaya","qiuqiu","haifeng"};发布于 2021-07-28 11:58:41
理想情况下,您根本不需要这样做。如果擦除最后一个元素是您需要执行的操作,那么转发列表很可能不是适用于该用例的容器。
也就是说,您可以使用线性搜索来查找倒数第二个迭代器,并使用erase_after。如果只有一个元素存在,请改用pop_front。
发布于 2021-07-28 12:08:55
您正在尝试删除作为std::forward_list实现的单链接列表的最后一个元素。很明显,如果不做列表的倒数第二个元素,就不能做到这一点。
如果你想这样做,那么有很多方法可以迭代到倒数第二,然后调用erase。
如果你知道有多少元素,
forward_list<string> names {"fwfew","zhangwne","xiaobew","yaya","qiuqiu","haifeng"};
auto next_val = std::next( names.begin(), 4 );
names.erase_after( next_val );https://stackoverflow.com/questions/68554141
复制相似问题