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




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值