c++---deque容器

 deque容器爲雙端數組,與vector類似,但vector僅爲後端 deque可以前端插入數據刪除數據。

void printdeque(deque<int>& d)
{
	for (deque<int>::iterator it = d.begin();it != d.end();it++)
	{
		cout << (*it) <<" ";
	}
	cout << endl;

}
	// 構造函數  // deque類似雙端數組
	//默認構造
	deque<int> de;
	for (int i = 0;i < 10;i++)
		de.push_back(i);
	printdeque(de);

	//區間構造
	deque<int>d2(de.begin(), de.end());
	printdeque(d2);

	//重複構造
	deque<int>d3(10, 100); 
	printdeque(d3);

	//拷貝構造
	deque<int>d4(de);
	printdeque(d4);





	//賦值操作//
	deque<int>d1;
	for (int i = 0;i < 10;i++)
		d1.push_back(i);
	printdeque(d1);

	//等號賦值
	deque<int>d2 = d1;
	printdeque(d2);

	//assign賦值
	deque<int>d3;
	d3.assign(d1.begin(), d1.begin()+4);
	printdeque(d3);

	deque<int>d4;
	d4.assign(10, 100);
	printdeque(d4);




	//容量大小操作 //

	deque<int> d1;
	for (int i = 0;i < 10;i++)
		d1.push_front(i);
	printdeque(d1); 

	if (d1.empty())
		cout << "d1爲空" << endl;
	else
		cout << "d1不爲空" << endl;
	cout << "d1的大小爲 :" << d1.size() << endl;

	d1.resize(15,1); //多的地方用1來填充
	printdeque(d1);
	


	////插入與刪除
	deque<int> d1;
	for (int i = 0;i < 10;i++)
		d1.push_front(i);   //頭插入
	printdeque(d1); 

	d1.push_back(10); //尾插
	printdeque(d1);

	d1.pop_back(); //尾刪
	printdeque(d1);
	d1.pop_front(); //頭刪
	printdeque(d1);

	///insert插入
	d1.insert(d1.end(),100); //尾部插入100
	d1.insert(d1.begin()+3, 11);//頭部+3(第四個位置)插入11
	printdeque(d1);

	deque<int> d2;
	d2.push_back(50);
	d2.push_back(20);
	d2.push_back(30);
	d2.push_back(40);
	d1.insert(d1.begin(), d2.begin(), d2.end());//在d1的頭部插入整個d2
	printdeque(d1);

	//刪除元素
	deque<int>::iterator it = d1.begin();
	it++;
	d1.erase(it); //刪除了第二個元素
	printdeque(d1);

	d1.clear();  //刪除所有元素
	printdeque(d1);



	//訪問元素//
	deque<int> d1;
	for (int i = 0;i < 10;i++)
		d1.push_front(i);   //頭插入
	printdeque(d1); 



	cout << d1.at(6) << endl; //訪問下標爲六的元素
	cout << d1[5] << endl;  //訪問下標爲五的元素

	cout << d1.front() << endl;  //訪問第一個元素
	cout << d1.back() << endl;  //訪問最後一個元素


	//排序操作//
	deque<int> d1;
	for (int i = 0;i < 10;i++)
		d1.push_front(i);   //頭插入
	printdeque(d1); 

	sort(d1.begin(), d1.end());
	cout << "排序後" << endl;
	printdeque(d1);

 

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