C++ STL中的forward_list::push_front()和forward_list::pop_front()
C++ STL中的forward_list
是一个单向链表容器,与双向链表容器list
相比,它只支持单向遍历,但却更为轻便。在forward_list中,可以使用push_front()
方法向链表头部添加元素,也可以使用pop_front()
方法删除链表头部的元素。
forward_list::push_front()
push_front()
方法用于在forward_list
容器的头部插入新元素。它的语法如下:
void push_front(const T& value);
void push_front(T&& value);
其中,const T& value
和T&& value
均表示要添加到链表头部的值。如果T
是传统的整数类型或者字符串类型,添加值非常简单,但是如果T是自定义类型的对象,需要提供相应的构造函数和赋值运算符。
下面是一个简单的例子,展示如何使用push_front()
方法向forward_list
中添加元素:
#include <iostream>
#include <forward_list>
using namespace std;
int main () {
forward_list<int> mylist = {10, 20, 30, 40};
mylist.push_front(5);
for (int& x: mylist) cout << x << " ";
return 0;
}
上面的代码演示了如何创建一个包含4个整数元素的forward_list
,并使用push_front()
方法在头部插入了一个值为5的元素。程序的输出如下:
5 10 20 30 40
forward_list::pop_front()
pop_front()
方法用于从forward_list
容器的头部移除元素。它的语法如下:
void pop_front();
它没有参数,只需调用该方法即可删除链表头部的元素。
下面是一个简单的例子,展示如何使用pop_front()
方法从forward_list
中移除元素:
#include <iostream>
#include <forward_list>
using namespace std;
int main () {
forward_list<int> mylist = {10, 20, 30, 40};
mylist.pop_front();
for (int& x: mylist) cout << x << " ";
return 0;
}
上面的代码演示了如何创建一个包含4个整数元素的forward_list
,并使用pop_front()
方法移除了头部的元素。程序的输出如下:
20 30 40
结论
forward_list
容器提供了向单向链表头部添加元素和从单向链表头部删除元素的方法。由于forward_list
容器不支持双向遍历,因此它可以更好地适应某些应用场合的要求。在实际应用中,我们可以根据具体的需求,选择使用push_front()
和pop_front()
方法来操作forward_list
容器的头部元素。