#include <deque> #include <iostream> #include "function.h" using namespace std; // 使用deque的push_back函数,在尾部插入元素 void push_back(deque<int>& d, int x); // 使用deque的push_front函数,在头部插入元素 void push_front(deque<int>& d, int x); // 使用deque的pop_back函数,在尾部删除元素 void pop_back(deque<int>& d); // 使用deque的pop_front函数,在头部删除元素 void pop_front(deque<int>& d); // 打印从begin到end-1的元素,中间用空格隔开 void print(const deque<int>::iterator& begin, const deque<int>::iterator& end); int main() { deque<int> d1(3, 1); deque<int> d2(d1.begin(), d1.end()); push_front(d2, 3); cout << "deque front: " << d2.front() << endl; push_back(d2, 4); cout << "deque back: " << d2.back() << endl; pop_back(d2); pop_front(d2); print(d2.begin(), d2.end()); return 0; }
时间: 2024-04-06 11:29:47 浏览: 117
这段代码是一个使用 deque(双端队列)的简单示例。其中包括了插入和删除元素的函数,以及打印 deque 元素的函数。
在 main 函数中,首先创建了一个元素为 1,大小为 3 的 deque 对象 d1,并将其作为参数创建了另一个 deque 对象 d2。然后使用 push_front 和 push_back 函数在队列的头部和尾部插入元素,分别输出了队列头部和尾部的元素。接着使用 pop_back 和 pop_front 函数删除队列尾部和头部的元素。最后使用 print 函数打印了队列中剩余的元素。
需要注意的是,这段代码使用了自定义的函数 push_front、push_back、pop_front、pop_back 和 print,这些函数的实现可能在另一个文件中。
相关问题
实现相关函数:#include <deque> #include <iostream> #include "function.h" using namespace std; // 使用deque的push_back函数,在尾部插入元素 void push_back(deque<int>& d, int x); // 使用deque的push_front函数,在头部插入元素 void push_front(deque<int>& d, int x); // 使用deque的pop_back函数,在尾部删除元素 void pop_back(deque<int>& d); // 使用deque的pop_front函数,在头部删除元素 void pop_front(deque<int>& d); // 打印从begin到end-1的元素,中间用空格隔开 void print(const deque<int>::iterator& begin, const deque<int>::iterator& end); int main() { deque<int> d1(3, 1); deque<int> d2(d1.begin(), d1.end()); push_front(d2, 3); cout << "deque front: " << d2.front() << endl; push_back(d2, 4); cout << "deque back: " << d2.back() << endl; pop_back(d2); pop_front(d2); print(d2.begin(), d2.end()); return 0; }
下面是这些函数的实现:
```cpp
#include <deque>
#include <iostream>
#include "function.h"
using namespace std;
// 使用deque的push_back函数,在尾部插入元素
void push_back(deque<int>& d, int x) {
d.push_back(x);
}
// 使用deque的push_front函数,在头部插入元素
void push_front(deque<int>& d, int x) {
d.push_front(x);
}
// 使用deque的pop_back函数,在尾部删除元素
void pop_back(deque<int>& d) {
d.pop_back();
}
// 使用deque的pop_front函数,在头部删除元素
void pop_front(deque<int>& d) {
d.pop_front();
}
// 打印从begin到end-1的元素,中间用空格隔开
void print(const deque<int>::iterator& begin, const deque<int>::iterator& end) {
for (auto it = begin; it != end; ++it) {
cout << *it << " ";
}
cout << endl;
}
```
这些函数分别使用了 deque 提供的 push_back、push_front、pop_back、pop_front 函数,实现了在 deque 队列的尾部和头部插入和删除元素的功能。同时,print 函数利用迭代器遍历 deque 队列中的元素,输出它们的值,并在中间用空格隔开。注意,print 函数的参数是迭代器,而不是 deque 对象本身。
阅读全文