STL-list实现链表

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




猜你喜欢

转载自blog.csdn.net/hpuw1234/article/details/77483347