forward_list

一、特性

单向链表,只支持单向顺序访问(不支持快速随机访问),是C++11标准新增的类型

可类比于数据结构——单(向)链表

1. 没有size操作

  • forward_list为了追求性能,省去了size操作

2. 没有反向容器的成员

成员 说明
reverse_iterator 按逆序寻址元素的迭代器
const_reverse_iterator 不能修改元素的逆序迭代器

c.rbegin()

c.rend()

返回指向 c 的尾元素和首元素之前位置的迭代器

c.crbegin()

c.crend()

返回const_reverse_iterator

3. 其迭代器不支持递减运算符

4. 并未定义insert、emplace和erase

  • 因为在forward_list中添加或删除元素与其他容器上的操作的实现方式不同,故forward_list定义了相似而不同的操作:insert_after、emplace_after和erase_after
  • 为了支持这些操作,forward_list定义了before_begin(),它返回一个首前迭代器

二、不支持的操作

操作 说明
c.pop_back()  

c.push_back(t)

c.emplace_back(args)

在c的尾部创建一个值为t或由args创建的元素
c.back() 每个顺序容器都有的操作,除了forward_list
c[n] 返回 c 中下标为 n 的元素的引用
c.at(n) 只适用于string、vector、deque、array
c.size() 返回容器中元素的数目

三、一些支持的操作

操作 说明
c.front() 每个顺序容器都有的操作
c.maxsize() 返回一个大于或等于该容器所能容纳的最大元素数的值
c.pop_front(args) vector和string不支持
c.push_front(args)  

c.before_begin()

c.cbefore_begin()

 
c.insert_after(args)  
c.erase_after(args)  

 

原文地址:https://www.cnblogs.com/xzxl/p/7702589.html