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;

}

 

 

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