可以像数组一样访问队列元素吗?如果没有,那么类似于队列的容器可以呢?

最佳答案

这是std::deque的理想任务。它经过优化,可以在末端添加/删除,但也可以对中间的元素进行随机访问。引用链接的文章:



因此,由于双端队列可以从两端高效地添加/删除,因此可以通过其push_back和pop_front方法有效地将deque用作队列:

std::deque<int> aDeque;

// enqueue
aDeque.push_back(1);
aDeque.push_back(2);

// dequeue
int top = aDeque.front();
aDeque.pop_front();


deque还支持通过下标运算符进行随机访问:
std::cout << aDeque[0];

10-04 18:04