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);

 

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