C++-STL(10)-list 双向链表

链表:缺点 :无法访问位置 没有Index的概念。数组可以[index].
           优点:在序列已知的任何位置插入或删除元素。可以合并、去重、交换

一样的增删改查上代码
 

void listtest()
{
	cout << "list*******************" << endl;
	cout << "定义 list < string> strlist" << endl;
	list < string > strlist;
	cout << "插入 1.头,push_front;2.尾,push_back;3.指定位置(,,"")" << endl;
	strlist.push_front("frist");
	strlist.push_back("end");
	auto iter = begin(strlist);
	strlist.insert(++iter,3, "a");
	for (auto it = strlist.begin(); it != strlist.end(); it++)
	{
		cout << *it << endl;
	}
	cout << "****************" << endl;
	int a[5] = { 1, 3, 2, 4, 2 };
	int b[7] = { 10, 30, 20, 30, 30, 40, 40 };
	list<int> lst1(a, a + 5);
	list<int> lst2(b, b + 7);
	cout << "1)"; Print(lst1.begin(), lst1.end());  //输出:1)1 2 2 3 4
	lst1.remove(2);                                 //删除所有和A(2)相等的元素
	cout << "2)"; Print(lst1.begin(), lst1.end());  //输出:2)1 3 4
	lst2.pop_front();                                //删除第一个元素
	cout << "3)"; Print(lst2.begin(), lst2.end());  //输出:3)30 20 30 30 40 40
	lst2.unique();                                   //删除所有和前一个元素相等的元素
	cout << "4)"; Print(lst2.begin(), lst2.end());  //输出:4)30 20 30 40
	lst2.sort();
	cout << "5)"; Print(lst2.begin(), lst2.end());  //输出:4)30 20 30 40
	lst1.merge(lst2);                               //合并 lst2 到 lst1 并清空 lst2
	cout << "6)"; Print(lst2.begin(), lst2.end());
	cout << "6)"; Print(lst1.begin(), lst1.end());
	}


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值