queue
#include <iostream>
#include <deque>
using namespace std;
void print(deque<int> &num)
{
for(int i = 0; i < num.size(); i++)
{
cout << num[i]<<" ";
}
cout << endl;
}
int main()
{
deque<int > num;
num.push_back(1);
num.insert(num.begin(), 10);
num.insert(num.begin(), 20);
num.push_back(30);
num.push_back(40);
print(num);
num.erase(num.begin());
print(num);
num.erase(num.end());
print(num);
return 0;
}

我们将例 1 中的 vector 换成 deque,运行程序发现两个程序的运行结果完全相同,是不是 vector 和 deque 相同呢?
答案是否定的。vector 说到底是个数组,在非尾部插入元素都需要移动其它元素,而 deque 则不同,它是一个可以操作数组头部和尾部的数组,因此在头部或尾部插入或删除数据的效率都是一样的。当我们需要频繁在头部和尾部插入或删除数据,则 deque 优于 vector。
小结
queue 比 vector(带顺序表的数组)功能强大,特别是频繁插入和删除效率高。
queue是带单链表的数组 (插入删除全部指针操作) 效率高。
本文探讨了C++中deque和vector数据结构在头部插入和删除操作上的效率差异,deque因其链式结构在这些场景下表现更优。小结:deque适合频繁头部/尾部操作,而vector在整体顺序不变的情况下性能相近。
585

被折叠的 条评论
为什么被折叠?



