c++--list容器 链表操作

链表相当于 不连续的数组 每个元素都有自己的位置 幷包含有指向下一个元素的位置,这样相当于形成了链式

链表不支持遍历

	//list容器构造 链表

	list <int> L1;

	L1.push_back(10);
	L1.push_back(20);
	L1.push_back(30);
	L1.push_back(40);
	L1.push_back(50);
	printList(L1);

	//区间构造
	list <int> L2(L1.begin(),L1.end());
	printList(L2);

	//拷贝构造
	list <int> L3(L2);
	printList(L3);
	list<int >L4(10, 100);
	printList(L4);






	//list容器赋值操作//

	list<int> L1;
	L1.push_back(10);
	L1.push_back(20);
	L1.push_back(30);
	L1.push_back(40);
	printList(L1);

	L1.push_front(50);
	printList(L1);

	list<int>L2 = L1;
	printList(L2);

	list<int> L3;
	L3.assign(L2.begin(), L2.end());
	printList(L2);



	
	//list容器大小操作//
	list<int> L1;
	L1.push_back(10);
	L1.push_back(20);
	L1.push_back(30);
	L1.push_back(40);

	if (L1.empty())
	{
		cout << "L1为空" << endl;
	}
	else
	{
		cout << "L1不为空" << endl;
		cout << "L1的大小为: " << L1.size() << endl;

	}

	L1.resize(2);
	printList(L1);







	//list容器的插入与删除///

	list<int> L1;
	L1.push_back(10);
	L1.push_back(20);
	L1.push_back(30);
	L1.push_back(40);
	L1.push_front(50); //头插
	printList(L1);

	L1.pop_back();   //尾删
	L1.pop_front();  //头删
	printList(L1);

	L1.insert(L1.begin(),100);
	list<int>::iterator it = L1.begin();
	it++;
	L1.insert(it,500);
	printList(L1);



	L1.erase(it);
	printList(L1);

	L1.remove(500);
	printList(L1);

	L1.clear(); 
	printList(L1);


	//list不能用at [] 访问元素 
 //    每个元素不是连续的线性空间 所以不能遍历
 //   迭加器 it 不能用+2的形式访问 只能++指向下一个元素
	
	
	L1.front(); //头元素
	L1.back();  //尾元素


	




	
	//list容器反转和排序//
	list<int> L1;
	L1.push_back(10);
	L1.push_back(20);
	L1.push_back(30);
	L1.push_back(40);
	printList(L1);

	L1.reverse();
	printList(L1);


	//所有不支持随机访问迭代器的容器,不可以用标准算法
	//不支持随机访问迭代器的容器,内部会提供对应的算法
	L1.sort(); //排序
	printList(L1);
void printList(list <int>& L)
{
	for (list<int>::iterator it = L.begin();it != L.end();it++)
		cout << *it << " ";
	cout << endl;

}

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章