我编写了一个类似于std :: vector的模板数组类,除了它重用空索引或' hole'删除元素时,不要将所有后续元素移回填充它。
当我尝试存储一个非常重要的对象时,我遇到了一个bug,因为我在重新分配期间使用memcpy来复制元素。 std :: vector是否遍历其所有元素并调用复制构造函数,还是使用了其他我不知道的技巧?
答案 0 :(得分:1)
是的,复制元素然后销毁原件是基本的想法。
您可以使用模板元编程进行优化,当然:
memcpy
C ++ 11增加了一个新的维度,你也可以移动对象。