STL-list实现链表

来源:互联网 发布:ipad淘宝开网店教程 编辑:程序博客网 时间:2024/06/03 05:06

#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;}




原创粉丝点击