标签:ace allocator 元素访问 ase lazy info 删除元素 包含 enc
参照自文档http://www.cplusplus.com/reference/array/,教程http://c.biancheng.net/view/6688.html,和书籍《STL源码剖析》(侯捷)
定义:
template < class T, class Alloc = allocator<T> > class forward_list;
forward_list的底层实现和 list 容器一样,采用的也是链表结构,只不过 forward_list 使用的是单链表,而 list 使用的是双向链表。
forward_list 容器具有和 list 容器相同的特性,即擅长在序列的任何位置进行插入元素或删除元素的操作,但对于访问存储的元素,没有其它容器(如 array、vector)的效率高。效率高是选用 forward_list 而弃用 list 容器最主要的原因,换句话说,只要是 list 容器和 forward_list 容器都能实现的操作,应优先选择 forward_list 容器。
使用需要引入头文件<forward_list>和使用std命名空间。
方式一:创建了一个空的 forward_list容器。
std::forward_list<int> values;
方式二:创建一个包含 n 个元素的 forward_list 容器,此时这二十个元素都被初始化为0。
std::forward_list<int> values(20);
方式三:创建并指定元素个数和初始化值,此时这十个元素都被初始化为5。
std::forward_list<int> values(10, 5);
方式四:直接拷贝其他的forward_list。
std::forward_list<int> value1(10);
std::forward_list<int> value2(value1);
也可以选择性复制一部分元素(利用迭代器函数)。
std::array<int, 5>arr{ 11,12,13,14,15 };
std::forward_list<int>values(arr.begin()+2, arr.end());//拷贝arr容器中的{13,14,15}
标签:ace allocator 元素访问 ase lazy info 删除元素 包含 enc
原文地址:https://www.cnblogs.com/echizen/p/13972734.html