哪个C++;我应该将数据结构用于仅端访问而不重新定位吗? 我对C++应用程序有一组不寻常的要求。我需要一个容器: 是通用的,如std::vector 可以在末尾添加元素 可以从末尾删除元素 从不移动元素的内存位置 不需要提供对元素的通用访问(我为此保留指针) 对其元素拥有所有权
是否存在具有这些属性的数据结构 有符合您要求的:哪个C++;我应该将数据结构用于仅端访问而不重新定位吗? 我对C++应用程序有一组不寻常的要求。我需要一个容器: 是通用的,如std::vector 可以在末尾添加元素 可以从末尾删除元素 从不移动元素的内存位置 不需要提供对元素的通用访问(我为此保留指针) 对其元素拥有所有权,c++,data-structures,C++,Data Structures,是否存在具有这些属性的数据结构 有符合您要求的: std::deque(双端队列)是一个索引序列容器,允许在其开始和结束时快速插入和删除。此外,在deque的任意一端插入和删除都不会使指向其余元素的指针或引用无效 另外,std::liststd::list/std::list?你自己的身份要求和“我为这个保留指针”感觉很奇怪,那么std::vector有足够大的reserve在构建中呢?如果你不需要特别搜索这个结构,那么很多通常的考虑就不需要了。为什么不列出或向量智能指针?@Fureeish是的
std::deque
(双端队列)是一个索引序列容器,允许在其开始和结束时快速插入和删除。此外,在deque的任意一端插入和删除都不会使指向其余元素的指针或引用无效
另外,
std::list
std::list
/std::list
?你自己的身份要求和“我为这个保留指针”感觉很奇怪,那么std::vector
有足够大的reserve
在构建中呢?如果你不需要特别搜索这个结构,那么很多通常的考虑就不需要了。为什么不列出或向量智能指针?@Fureeish是的,这很奇怪,但它是一个重要的优化,std::list
是否有问题?std::deque
将重新分配memory@Fureeish:不,不会。如果只添加到开头或结尾,则不会添加。这就是它被称为双端队列的原因。std::deque
是正确的,因为我只在末尾添加和删除。