8

forward_list 是一个单链表(与标准列表容器不同)。list 具有在前面和后面插入的功能,但 forward_list 没有在后面插入元素的功能(类似于 push_back)。为什么不能在列表后面插入元素?

4

1 回答 1

10

这是一个深思熟虑的设计决策,forward_list与单链表相比应该不会产生任何开销。这在 C++11 标准 (23.3.4.1) 中有说明:

注意:forward_list相对于手写的 C 样式单链表,它的空间或时间开销为零。与该目标相冲突的功能已被省略。

维护指向列表末尾的指针会增加空间开销(对于指针本身)和时间开销(在列表末尾插入或删除元素时更新指针)。

于 2013-04-02T14:17:49.227 回答