本文介绍了访问c ++队列元素,例如数组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
可以像数组一样访问队列元素吗?如果没有,那么类似于队列的容器可以呢?
Can queue elements be accessed like an array? If not, then what containers similar to a queue can?
推荐答案
这是 std :: deque .它经过优化,可以在末端添加/删除,但也可以对中间的元素进行随机访问.引用链接的文章:
This is a task ideal for std::deque. Its optimized for adding/removing onto the end but also provides random access to elements in the middle. To quote the linked article:
... 双端队列还支持在序列开始时恒定时间插入和删除元素
因此,由于双端队列可以通过两端的有效添加/删除操作,因此可以通过其push_back和pop_front方法有效地用作队列:
So because it can efficiently add/remove from both ends, deque can be used efficiently as a queue with its push_back and pop_front methods:
std::deque<int> aDeque;
// enqueue
aDeque.push_back(1);
aDeque.push_back(2);
// dequeue
int top = aDeque.front();
aDeque.pop_front();
deque
还支持通过下标运算符进行随机访问:
deque
also support the random access through the subscript operator:
std::cout << aDeque[0];
这篇关于访问c ++队列元素,例如数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!