gpt4 book ai didi

C++ 分配器 : hooking into a resize function

转载 作者:行者123 更新时间:2023-11-30 02:31:23 28 4
gpt4 key购买 nike

据我所知,当 vector 空间不足时,分配器用于创建新空间。但是,我想创建一个自定义调整大小策略,该策略将移除底部 25% 的元素并始终保持相同的大小。这是为了构建一个空间有限的缓存。

有没有我可以覆盖的方法或默认仿函数来获得我想要的行为?

最佳答案

TL;DR,您正在尝试使用错误的容器。

分配器负责根据容器的需要分配、释放内存等。容器有责任实现所需的语义,它使用分配器来协助它这样做。

std::vector 可能不是您描述的缓存的最佳选择,或者至少不是原始形式。

您可以考虑将 boost ( circular_buffer) 作为替代方案。

鉴于您提到的 vector,您还可以将其包装在您想要的缓存接口(interface)中,但更改分配器不是正确的路线。对分配器的更改将使 vector 认为容器的“下部”25% 中存在有效对象,而分配器已经删除了它们(或它们的内存)。

关于C++ 分配器 : hooking into a resize function,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37838646/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com