本文介绍了访问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 ++队列元素,例如数组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-29 11:01