forward_list是单个链表(与标准列表容器不同)。 list具有在前面和后面插入的功能,但forward_list没有在后面插入元素的功能(类似于push_back)。为什么不能在列表的后面插入一个元素?
答案 0 :(得分:9)
这是一个深思熟虑的设计决策,与单链表相比,forward_list
不会带来任何开销。这在C ++ 11标准(23.3.4.1)中有说明:
注意:相对于手写的C风格单链表,
forward_list
的空间或时间开销为零。与此目标冲突的功能已被省略。
维护指向列表末尾的指针会增加空间开销(对于指针本身)和时间开销(在列表末尾插入或擦除元素时更新指针)。