【C++】蓝桥必备-STL<Part 5-deque>

94 阅读1分钟

STL第五部分(deque)

✨1、deque【双向队列】

① 头文件

#inlcude <deque>

② 初始化

// deque <类型> 变量名
deque<int> d1;

③ 常用函数

1、push_front()

d1.push_front(10); 

2、push_back()

d1.push_back(0);

3、front()

std::cout << "d1.front:" << d1.front() << endl;  // d1.front:10

4、back()

// 返回最后一个元素
std::cout << "d1.back:" << d1.back() << endl;  // d1.back:0

5、empty()

std::cout << "d1.empty:" << d1.empty() << endl;  // d1.back:0

6、size()

std::cout << "d1.size:" << d1.size() << endl;  // d1.back:2

7、pop_back()

d1.push_front(10); 
d1.push_back(0);
d1.push_front(70);
d1.push_front(15);
d1.push_front(64); 
while (!d1.empty()){
    std::cout << d1.back() << " ";
    d1.pop_back();
}  // 输出0 10 70 15 64
std::cout<< endl;

8、pop_front()

d2.push_front(10); 
d2.push_back(0);
d2.push_front(70);
d2.push_front(15);
d2.push_front(64); 
while (!d2.empty()){
    std::cout << d2.front() << " ";
    d2.pop_front();
}  // 输出64 15 70 10 0
std::cout<< endl;

9、clear()

d3.push_front(10); 
d3.clear();
std::cout << "d3.size:" << d3.size() << endl;  // 输出0

10、begin()

11、end()

d4.push_front(70);
d4.push_front(15);
d4.push_front(64);
deque <int> d5(d4.begin(), d4.end());
while (!d5.empty()){
    std::cout << d5.front() << " ";
    d5.pop_front();
}  // 输出64 15 70
std::cout<< endl;

image.png

①至③运行截图

附全文代码

#include <iostream>
#include <deque> 

using namespace std;

int main(){
	
	// 初始化双向队列
	deque <int> d1, d2, d3, d4;
	
	// 追加元素 
	d1.push_front(10); 
	d1.push_back(0);
	std::cout << "d1.front:" << d1.front() << endl;
	std::cout << "d1.back:" << d1.back() << endl;
	std::cout << "d1.empty:" << d1.empty() << endl; 
	std::cout << "d1.size:" << d1.size() << endl;
	
	d1.push_front(70);
	d1.push_front(15);
	d1.push_front(64); 
	// pop_back()的使用 
	while (!d1.empty()){
	        std::cout << d1.back() << " ";
	        d1.pop_back();
	}  // 输出0 10 70 15 64
	std::cout<< endl;
	std::cout << "d1.size:" << d1.size() << endl;
	
	d2.push_front(10); 
	d2.push_back(0);
	d2.push_front(70);
	d2.push_front(15);
	d2.push_front(64); 
	// pop_front()的使用 
	while (!d2.empty()){
        std::cout << d2.front() << " ";
        d2.pop_front();
	}  // 输出64 15 70 10 0
	std::cout<< endl;
	std::cout << "d2.size:" << d2.size() << endl;
	
	// clear()的使用 
	d3.push_front(10); 
	d3.clear();
	std::cout << "d3.size:" << d3.size() << endl;
	
	// begin()与end()的使用 
	d4.push_front(70);
	d4.push_front(15);
	d4.push_front(64);
	deque <int> d5(d4.begin(), d4.end());
	while (!d5.empty()){
	    std::cout << d5.front() << " ";
	    d5.pop_front();
	}  // 输出64 15 70
	return 0;
}