容器有恒定时间访问任何元素,从前面弹出并向后推?

时间:2012-05-20 11:45:23

标签: c++ containers std

我正在寻找具有恒定时间的标准容器(如果存在):

  • 按位置访问任何元素
  • 前面的pop元素
  • 后面的推送元素

我可以自己编程,但为什么它可能已经存在于std中呢?

2 个答案:

答案 0 :(得分:7)

std::deque是你的朋友。它是一个双端队列,可随机访问元素。

答案 1 :(得分:3)

您可以使用 std::deque 。它满足您的所有要求。

  • 按位置访问任何元素

它使用随机迭代器以及operator []

提供随机访问
  • 前面的pop元素

它提供 pop_front()

  • 后面的推送元素

它提供 push_back()