C ++-可以在堆栈上构建可调整大小的容器

问题描述 投票:0回答:1

我已经对此进行了搜索,但无法找到答案。我们都知道很多STL容器都是可调整大小的(除了诸如`std :: array等之类的东西),但是它们都分配在堆上。所以我想知道是否可以在堆栈上构建可调整大小的容器,是否有人可以给我一个例子。

对此的思考:

我认为链表将可以构建在堆栈上,因为(据我所知)由于生命周期您仅在堆上分配节点,但是总的来说,我不确定如果可行的话。

c++ c stack containers heap
1个回答
1
投票

由于执行栈分配的工作方式,这种“容器”必然必须不可复制,因此与现有容器完全不同。

由于堆栈大小的限制,它的大小也必须非常有限。

例如,您可以实现的是一个类似矢量的可调整大小的容器,该容器的常量存储量较小,因此常量最大大小较小。

您还可以在递归函数内创建链接列表,其中head在当前帧上,后继节点在递归调用该函数的帧中。通过调用该函数可以增加大小,而通过返回可以减小大小。

这样的容器是否有用是另一回事。

© www.soinside.com 2019 - 2024. All rights reserved.