作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
假设我有一个 std::pmr::vector
的 int
已经在使用中。它已经初始化并且包含 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/
我是一名优秀的程序员,十分优秀!