C++ --deque容器常见操作

文章目录

deque容器常见操作

deque是一个双端队列,相比于vector:deque的首部插入效率比vector高,deque的读取效率没有vector高。

一、deque构造函数

//deque的构造函数
#include <deque>
void printDeque(const deque<int>& d)
{ 
	for (deque<int>::const_iterator it = d.begin(); it != d.end(); it++)		//const_iterator是一个常迭代器
	{ 
		cout << *it << " ";
	}
	cout << endl;
}
void test()
{ 
	deque<int> d1;		//默认构造
	for (int i = 0; i < 10; i++)
	{ 
		d1.push_back(i);
	}
	printDeque(d1);
	deque<int> d2(d1.begin() + 1, d1.end() - 1);		//构造
	printDeque(d2);
	deque<int> d3(3, 100);			//构造
	printDeque(d3);
	deque<int> d4(d3);				//拷贝构造
	printDeque(d4);
}
int main()
{ 
	test();
	return 0;
}

二、deque容器赋值

//deque容器赋值
void test()
{ 
	deque<int> d1;
	for (int i = 0; i < 10; i++)
	{ 
		d1.push_back(i);
	}
	printDeque(d1);
	deque<int> d2 = d1;			//operator= 赋值
	printDeque(d2);
	deque<int> d3;
	d3.assign(d1.begin() + 1, d1.end());				//assign区间赋值
	printDeque(d3);
	deque<int> d4;
	d4.assign(8, 100);				//n个element元素赋值
	printDeque(d4);
}
int main()
{ 
	test();
	return 0;
}

三、deque容器大小操作

//deque大小操作:empty, size, resize
//deque没有capacity的概念
void test()
{ 
	deque<int> d1;
	for (int i = 0; i < 5; i++)
	{ 
		d1.push_back(i);
	}
	cout << d1.empty() << endl;
	cout << d1.size() << endl;
	d1.resize(10);
	printDeque(d1);
	cout << d1.size() << endl;
	d1.resize(12, 100);
	printDeque(d1);
}
int main()
{ 
	test();
	return 0;
}

四、deque容器插入和删除

//deque容器插入和删除
//push_front, push_back, pop_back, pop_front, insert, erase, clear
void test()
{ 
	deque<int> d1;
	d1.push_back(10);
	d1.push_back(20);
	d1.push_front(100);
	d1.push_front(200);
	printDeque(d1);
	d1.pop_back();
	d1.pop_front();
	printDeque(d1);
	d1.insert(d1.begin(), 1000);
	d1.insert(d1.begin() + 1, 2, 2000);
	printDeque(d1);
	d1.erase(d1.begin(), d1.begin() + 2);
	printDeque(d1);
	d1.clear();
}
int main()
{ 
	test();
	return 0;
}

五、deque容器存取

//deque容器存取:operator[], at, back, front
void test()
{ 
	deque<int> d1;
	d1.push_back(10);
	d1.push_back(20);
	d1.push_back(30);
	d1.push_front(100);
	printDeque(d1);
	cout << d1[1] << endl;
	cout << d1.at(2) << endl;
	cout << d1.back() << endl;
	cout << d1.front() << endl;
}
int main()
{ 
	test();
	return 0;
}

六、deque容器排序

//deque容器排序
#include <algorithm>
void test()
{ 
	deque<int> d1;
	d1.push_back(10);
	d1.push_back(20);
	d1.push_back(100);
	d1.push_front(200);
	sort(d1.begin(), d1.end());
	printDeque(d1);
}
int main()
{ 
	test();
	return 0;
}
    原文作者:归海十八刀
    原文地址: https://blog.csdn.net/qq_46480020/article/details/123959686
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞