#include<list>用来将STL的vector包含到程序中。
list<char> L;是一个声明,用于生成管理char型元素的双向链表。STL提供的list是一个模板,需要我们在<>中指定类型,从而定义管理该类型数据的容器。在访问list中的元素(赋值或写入)时,可以与数组一样使用“[]”运算符。另外,list还具备一项vector所不具备的特长,那就是元素的插入与删除操作秩序O(1)即可完成,效率极高。
例如:vector中定义了如下表的成员函数
函数名 功能 复杂度
size() 返回链表的元素数 O(1)
push_front(x) 在表的开头添加元素 O(1)
push_back(x) 在表末尾添加元素x O(1)
pop-front() 删除位于表开头的元素 O(1)
pop_back() 删除表的最后一个元素 O(1)
begin() 返回指向表开头的迭代器 O(1)
end() 返回指向表末尾(最后一个元素的位置)的迭代器 O(1)
insert(p,x) 在表的位置p处插入元素x O(1)
erase(p) 删除表中位置p的元素 O(1)
clear() 删除表中所有元素 O(n)
代码:
#include <cstdio>
#include <algorithm>
#include <iostream>
#include <list>
using namespace std;
int main()
{
list<char> L;
L.push_front('b');
L.push_back('c');
L.push_front('a');
cout<<L.front()<<endl;
cout<<L.back()<<endl;
L.pop_front();
L.push_back('d');
cout<<L.front()<<endl;
cout<<L.back()<<endl;
return 0;
}