gpt4 book ai didi

c++ - shared_ptr 到 shared_ptr 的 vector

转载 作者:太空宇宙 更新时间:2023-11-04 16:21:23 27 4
gpt4 key购买 nike

我有以下类(class)

struct Images {
std::vector< std::shared_ptr<byte[]> > ptr_vector;
}

ptr_vector 放入 std::shared_ptr 中不会在复制 Images 时更有效率吗?即做 Images A;图片 B = A;

struct Images {  
std::shared_ptr< std::vector<std::shared_ptr<byte[]>> > vector_ptr;
}

这里只执行一个,而不是复制 vector 并增加多个 shared_ptr 引用计数。

这种方法有什么问题/限制吗?

最佳答案

是的,如果你必须只复制一个指针,复制会更有效率。

限制是使用任何指针,您共享公共(public)数据。当你修改一个 struct Images另一个也被修改了。

如果要共享数据,也可以考虑拥有std::shared_ptr<Images>

struct Images {
std::vector< std::shared_ptr<byte[]> > ptr_vector;
};

std::shared_ptr<Images> images1, images2;

这也将避免复制大型数据集。

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

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