gpt4 book ai didi

c++ - 带有 vector 的 shared_ptr

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:06:10 26 4
gpt4 key购买 nike

我目前有这样的载体:

vector<MyClass*> MyVector;

我使用

访问
MyVector[i]->MyClass_Function();

我想使用shared_ptr。这是否意味着我所要做的就是将我的 vector 更改为:

typedef shared_ptr<MyClass*> safe_myclass

vector<safe_myclass>

我可以像以前一样继续使用我的其余代码吗?

最佳答案

vector<shared_ptr<MyClass>> MyVector;应该可以。

但是如果 MyClass 的实例不在 vector 外部共享,并且您使用现代 C++11 编译器,vector<unique_ptr<MyClass>>shared_ptr 更有效率(因为 unique_ptr 没有 shared_ptr 的引用计数开销)。

关于c++ - 带有 vector 的 shared_ptr,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10790161/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com