我已经对此进行了搜索,但无法找到答案。我们都知道很多STL容器都是可调整大小的(除了诸如`std :: array等之类的东西),但是它们都分配在堆上。所以我想知道是否可以在堆栈上构建可调整大小的容器,是否有人可以给我一个例子。
对此的思考:
我认为链表将可以构建在堆栈上,因为(据我所知)由于生命周期您仅在堆上分配节点,但是总的来说,我不确定如果可行的话。
由于执行栈分配的工作方式,这种“容器”必然必须不可复制,因此与现有容器完全不同。
由于堆栈大小的限制,它的大小也必须非常有限。
例如,您可以实现的是一个类似矢量的可调整大小的容器,该容器的常量存储量较小,因此常量最大大小较小。
您还可以在递归函数内创建链接列表,其中head在当前帧上,后继节点在递归调用该函数的帧中。通过调用该函数可以增加大小,而通过返回可以减小大小。
这样的容器是否有用是另一回事。