要删除forward_list(前向链表)的最后一个元素,可以使用迭代器进行操作。由于forward_list只允许单向遍历,所以需要通过遍历整个链表来找到倒数第二个元素,并将其的next指针指向nullptr。
下面是一个示例代码来演示如何删除forward_list的最后一个元素:
#include <iostream>
#include <forward_list>
int main() {
std::forward_list<int> mylist = {1, 2, 3, 4, 5};
auto it = mylist.before_begin(); // 迭代器指向第一个元素之前的位置
// 遍历链表,找到倒数第二个元素
for (auto prev = it; ++prev != mylist.end(); ++it)
;
mylist.erase_after(it); // 删除最后一个元素
// 打印删除后的forward_list
for (auto& x : mylist) {
std::cout << x << " ";
}
std::cout << std::endl;
return 0;
}
运行结果为:
1 2 3 4
需要注意的是,forward_list的删除操作需要注意空链表和只有一个元素的链表的情况,因为它们没有倒数第二个元素。
关于forward_list的更多信息和使用示例,可以参考腾讯云的相关文档:
领取专属 10元无门槛券
手把手带您无忧上云