using namespace std;
vector< shared_ptr<MyObject> > objects;
// objects gets filled in by something
random_shuffle(objects.begin(), objects.end());
由于任何原因,这是不好还是低效?有没有更好的方法来做到这一点? (我想我的智能指针阵列随机排序)shared_ptrs的random_shuffle向量是否坏(或者甚至是危险的)?
编辑: 我问,因为会有很多交换,并且因为我不知道幕后的实施,我想知道它是否它也许可以说:
- 大量的引用计数可能会向上和向下像疯了似的,影响性能
- 更有甚者,有可能导致内存循环引用的可能性泄密
为什么它会是坏?你只是重新订购一个容器。你会担心什么会发生? – CoryKramer
随机排序,你的意思是随机洗牌? – Steephen
a。)它可能效率低下,每次指针被分配给彼此时,引用计数会增加和减少。或者b)也许循环引用可能会人为地增加引用计数,导致内存泄漏。我不知道,这就是为什么我问(我不确定发生了什么)。 – memo