【发布时间】:2021-07-08 07:03:13
【问题描述】:
在交换或移动对象数组时,如果假设数组中有指向随机对象的指针会发生什么。指针是否在对象元素移动时跟随它们?如果他们不这样做,有没有办法让他们这样做?
【问题讨论】:
-
不。他们没有
-
什么样的数组?常规的?用
new创建的那个?std::array?std::vector? -
指针指向内存中的地址。如果对象从该地址移动,则指针不再指向它。结束!如果您希望引用/指针/迭代器的稳定性同时还能够任意分类元素,则需要通过智能指针进行分配,对索引/指针的向量而不是对象本身进行排序,或者使用在此类操作之间保持稳定性的容器。这方面会有很多信息。
-
@underscore_d 我不同意。对象不能在内存中移动。
-
@DanielLangr Pedantry 只有伴随着细化才有用......