deque:双端队列库

发布时间 2023-04-22 15:55:53作者: linux星

#include <deque>
using namespace std;
deque<int> deq1; // 定义一个空的deque,元素类型为int
deque<int> deq2(10); // 定义一个大小为10的deque,元素类型为int,初始值为0
deque<int> deq3(10, 1); // 定义一个大小为10的deque,元素类型为int,初始值为1
deque<int> deq4 = {1, 2, 3}; // 使用花括号进行初始化
deque<int> deq5(deq4); // 使用拷贝构造函数进行初始化

#include <deque>
using namespace std;
deque<int> deq = {1, 2, 3};
// 获取deque的大小
int size = deq.size();
// 获取deque的某个位置的元素
int element = deq[0]; // 获取第一个元素
// 修改deque的某个位置的元素
deq[0] = 4; // 将第一个元素修改为4
// deque的插入和删除
deq.push_back(4); // 在deque的末尾插入一个元素
deq.push_front(0); // 在deque的开头插入一个元素
deq.insert(deq.begin() + 1, 5); // 在deque的第二个位置插入元素5
deq.erase(deq.begin() + 2); // 删除deque的第三个元素
deq.pop_front(); // 删除deque的第一个元素
deq.pop_back(); // 删除deque的最后一个元素
// deque的遍历
for (int i = 0; i < deq.size(); i++) {
    cout << deq[i] << " ";
}
for (int element : deq) {
    cout << element << " ";
}

#include <deque>
#include <algorithm>
using namespace std;
deque<int> deq = {3, 1, 4, 1, 5, 9};
// deque的排序
sort(deq.begin(), deq.end()); // 对deque进行排序
// deque的查找
auto it = find(deq.begin(), deq.end(), 4); // 查找4在deque中的位置
if (it != deq.end()) {
    cout << "4 found at position " << it - deq.begin() << endl;
} else {
    cout << "4 not found" << endl;
}
// deque的拼接
deque<int> deq1 = {1, 2};
deque<int> deq2 = {3, 4};
deq1.insert(deq1.end(), deq2.begin(), deq2.end()); // 将deq2中的元素插入到deq1的末尾
// deque的反转
reverse(deq1.begin(), deq1.end()); // 反转deque