Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/138.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
哪个C++;我应该将数据结构用于仅端访问而不重新定位吗? 我对C++应用程序有一组不寻常的要求。我需要一个容器: 是通用的,如std::vector 可以在末尾添加元素 可以从末尾删除元素 从不移动元素的内存位置 不需要提供对元素的通用访问(我为此保留指针) 对其元素拥有所有权_C++_Data Structures - Fatal编程技术网

哪个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
是正确的,因为我只在末尾添加和删除。