我应该使用哪种C++数据结构进行最终访问而不进行重定位?

sdg*_*sdh 2 c++ data-structures

我对C++应用程序有一组不同寻常的要求.我需要一个容器:

  • 是通用的,就像 std::vector
  • 可以添加元素到最后
  • 可以从末尾删除元素
  • 切勿移动元素的内存位置
  • 难道不是需要提供内容的通用访问(我一直指针这个)
  • 取得对其元素的所有权.

是否有具有这些属性的数据结构?

Max*_*kin 11

std::deque你的要求相匹配:

std::deque(双端队列)是一个索引序列容器,允许在其开头和结尾快速插入和删除.此外,在双端队列的任何一端插入和删除都不会使指针或对其余元素的引用无效.

还有std::list.

  • @Fureeish:不,它不会.如果您只添加到开头或结尾,则不会.这就是为什么它被称为*双端*队列. (5认同)