我有一个具有以下属性的动态数组:
- 存储键值对结构。
- 每当添加条目时重新分配内存 (realloc)。调用构造函数。
- 删除很棘手 - 被删除的条目必须从它所在的任何位置移动到数组的末尾 - 它的内容(键和值)必须与数组中的当前最后一项交换。调用析构函数。重新分配内存,以便删除该条目。
现在的问题是我最初通过引用将值存储在条目中。但是,那时我不能使用operator=
。但我也不能按价值存储。而且我不想存储指针,因为这会破坏整个目的。我目前看到的唯一选择是在被删除的条目上调用placement new,并从最后一个元素调用复制构造函数。这将让我通过引用保留价值。有什么建议吗?还是我应该注意的陷阱?