一文快速掌握C++双端数组容器deque的使用
deque是什么
deque(全称double-ended queue,即双端队列)是C++ STL中的双端数组容器,它支持随机存取、动态扩展长度等操作,是一种很常用的数据结构。它内部使用分段连续的存储空间来实现,可以将插入和删除的操作在两端进行,分别使用头尾指针来指示队列的两端,性能很高。
以下是创建一个deque的方法:
#include <deque>
using namespace std;
deque<int> dq;
我们在include中加入deque头文件,并使用using namespace std;使用std命名空间。然后通过deque
deque的基本操作
在deque头部和尾部插入元素
使用push_back()在deque的尾部插入元素,使用push_front()在deque的头部插入元素。比如:
dq.push_back(1); // 在尾部插入1
dq.push_front(2); // 在头部插入2
从deque头部和尾部删除元素
使用pop_back()从deque的尾部删除元素,使用pop_front()从deque的头部删除元素。比如:
dq.pop_back(); // 删除尾部元素
dq.pop_front(); // 删除头部元素
获取deque头部和尾部的元素
使用front()函数获取deque头部的元素,使用back()函数获取deque尾部的元素。比如:
int first = dq.front(); // 获取头部元素
int last = dq.back(); // 获取尾部元素
获取deque的长度和判断deque是否为空
使用size()函数获取deque的长度,使用empty()函数判断deque是否为空。比如:
int len = dq.size(); // 获取deque的长度
bool is_empty = dq.empty(); // 判断deque是否为空
在deque中随机访问元素
可以使用[]运算符在deque中随机访问元素,下标从0开始。如:
int x = dq[0]; // 获取dq的第一个元素
int y = dq[2]; // 获取dq的第三个元素
需要注意的是,[]运算符不会检查下标是否合法,使用时需要先检查下标是否正确。
deque的高级操作
deque的迭代器
deque具有双向迭代器,可以使用begin()和end()函数来获取deque的迭代器。
deque<int>::iterator it; // 定义迭代器it
for (it = dq.begin(); it != dq.end(); it++) {
// 遍历deque的每一个元素
}
插入元素到指定位置
可以使用insert()函数在deque的指定位置插入元素,其用法如下:
dq.insert(dq.begin()+1, 100); // 在dq的第二个位置插入100
删除指定位置的元素
可以使用erase()函数删除deque的指定位置的元素,其用法如下:
dq.erase(dq.begin()+2); // 删除dq的第三个元素
示例说明
示例1
#include <deque>
#include <iostream>
using namespace std;
int main() {
deque<int> dq;
dq.push_back(1);
dq.push_back(2);
dq.push_back(3);
dq.pop_front();
dq.push_front(4);
deque<int>::iterator it;
for (it = dq.begin(); it != dq.end(); it++) {
cout << *it << " "; // 输出: 4 1 2
}
cout << endl;
return 0;
}
示例2
#include <deque>
#include <iostream>
using namespace std;
int main() {
deque<int> dq;
dq.push_back(1);
dq.push_back(2);
dq.push_back(3);
dq.erase(dq.begin()+1, dq.begin()+3);
deque<int>::iterator it;
for (it = dq.begin(); it != dq.end(); it++) {
cout << *it << " "; // 输出: 1
}
cout << endl;
return 0;
}
以上就是C++双端数组容器deque的使用技巧,希望能对你有所帮助!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:一文快速掌握C++双端数组容器deque的使用 - Python技术站