gpt4 book ai didi

c++ - 多态分配器 : how to change the memory resource of a container

转载 作者:搜寻专家 更新时间:2023-10-31 00:53:43 27 4
gpt4 key购买 nike

假设我有一个 std::pmr::vectorint 已经在使用中。它已经初始化并且包含 N 个项目(重要的是 N 大于 0)。在引擎盖下它使用内存资源 M1
到目前为止,一切都很好。它有效,我可以将它与另一个使用完全不同的内存资源的整数 vector 进行比较,等等,以及多态分配器必须提供的所有其他奇妙的东西。

现在我想更改我的 vector 的底层内存资源(抛开所有可能的性能或其他方面的缺点)。

像这样:

template<typename MR>
void setMemoryResource(MR *resource) {
// ... ??
}

如何管理才能让所有的元素在操作后都还在?
我问这些容器和分配器都没有设置不同内存资源的方法。因此,我什至想知道这是否可能。
我可以想出几种方法来做到这一点,但它们看起来都不符合习惯。实际上,所有这些看起来都像是一种绕过 API 漏洞的棘手方法。

我很确定我错过了一些基本的东西,它可能和作业一样简单。我错了吗?

最佳答案

没有简单的方法。它旨在您无法在其生命周期内更改与容器关联的内存资源。您可以使用分配器扩展的复制/移动构造函数创建具有所需内存资源的容器,但不能更改现有容器的内存资源。

关于c++ - 多态分配器 : how to change the memory resource of a container,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47855555/

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