链表的基础操作

链表

#include <iostream>
#include <list>
using namespace std;
int main(){
	list<int> l;
	cout<<"list的大小:"<<l.size()<<endl;
	//list的大小:0
	
	for (int i=0; i<10; i++)
		l.push_back(i); //尾部插入元素 尾插法
	cout<<"list的大小:"<<l.size()<<endl;
	//list的大小:10
	
	list<int>::iterator it = l.begin();
	while(it!=l.end()){
		cout<<*it<<" ";
		it++;
	}
	cout << endl;
	//0 1 2 3 4 5 6 7 8 9
	
	//list不能随机访问容器中的值,即不能it+5这样的操作。只能一个一个的走,即it++
	it=l.begin();
	it++;
	it++;
	it++;
	l.insert(it, 100); //100插入在链表第4个位置
	for (list<int>::iterator it = l.begin(); it != l.end(); it++)
		cout<<*it<<" ";
	cout<<endl;
	//0 1 2 100 3 4 5 6 7 8 9
	
	l.clear(); 
	
	cout<<"list的大小:"<<l.size()<<endl;
	//list的大小:0
	
	for (int i=0; i<10; i++)
		l.push_front(i); 		//尾部插入元素 尾插法
	cout<<"list的大小:"<<l.size()<<endl;
	//list的大小:10
	
	for(list<int>::iterator it=l.begin(); it!=l.end(); it++)
		cout<<*it<<" ";
	cout<<endl;        
	//9 8 7 6 5 4 3 2 1 0
	
	list<int>::iterator it1 = l.begin();
	list<int>::iterator it2 = l.begin();
	it2++;
	it2++;
	it2++;
	//要想删除一个区间段。只能用指针++一步一步的指向那个末尾位置,不能直接l.begin()+3
	l.erase(it1, it2);		//删掉的是区间[it1,it2) 
	for (list<int>::iterator it=l.begin(); it!=l.end(); it++)
		cout<<*it<<" ";
	cout<<endl;
	//6 5 4 3 2 1 0
	
	l.insert(l.begin(), 100);
	l.insert(l.begin(), 100);
	l.insert(l.begin(), 100);
	l.erase(l.begin()); 		//删除该位置的元素
	for (list<int>::iterator it=l.begin(); it!=l.end(); it++)
		cout<<*it<<" ";
	cout<<endl;
	//100 100 6 5 4 3 2 1 0
	
	cout<<"链表中的第一个元素:"<<l.front()<<endl; 
	//链表中的第一个元素:100
	
	cout<<"链表中的最后一个元素:"<<l.back()<<endl; 
	//链表中的最后一个元素:0
	
	l.remove(100);				//移除所有100元素的值  remove
	for (list<int>::iterator it=l.begin(); it!=l.end(); it++)
		cout<<*it<<" ";
	cout<<endl;
	//6 5 4 3 2 1 0
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值