问题描述
我有 2 个容器(在 value_type
方面相同)并像这样使用它们:
void use(const container& c1,const container& c2);
void fill(container& c);
container current(/* potential alloc/memory resource arg */);
container prev(/* potential alloc/memory resource arg */);
while (/* ... */) {
std::swap(current,prev);
current.clear();
fill(current);
use(current,prev);
}
fill
函数从不擦除元素,只在其执行期间插入,所以我认为如果我可以使用单调分配器(又名指针碰撞分配器)来优化循环内发生的整个任务会非常好.
我的问题是:
- 分配器是否应该在复制/移动/交换时传播?
- 应该有 2 个内存资源还是 1 个?
- 是否可以实现这样的分配器:
- 2 个容器的交换将是 O(1)
- 两个容器在被清除后都会重用内存
- 如果可能,我应该:
- 如果不可能,如果循环编写不同,是否可以实现?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)