1.forward_list的迭代器是单向的Forward Iterator
2.forward_list的数据结构中有一个头节点head,注意这个head不是指针类型,而就是实物本身。
3.forward_list不存任何迭代器。begin()
函数只能返回head.next,而end()
函数直接就新建一个值为0的迭代器类型返回。注意这里的end()
不是真正的尾巴,因为单向链表要想获得尾巴,只能从头开始一步一步走到最后。既然已经知道尾巴肯定是0,那就不需要从头走一遍了。
4.同样由于单向链表的特性,stl中传统的insert操作不好实现,insert要求插到指定位置的前面,而单向链表每个节点都不知道自己之前的节点,只能从头开始往后遍历,很费时。但是提供了insert_after()
和erase_after
的操作。
5.和4同理,单向链表只提供push_front()
操作和pop_front
操作,因为它比较容易获得第一个有效节点,head.next就是了。