gpt4 book ai didi

c++ - 如何使用包含大量数据的类元素处理 STL 容器

转载 作者:行者123 更新时间:2023-11-27 22:29:22 25 4
gpt4 key购买 nike

我正在寻找一种方法将大量数据(存储在一个包含基本功能的类中,如检查数据、大小等)放入任何 STL 容器,如 vector 或队列(FIFO 队列是最好的,因为我有生产者和消费者)。

问题是我必须实现复制构造函数并且..好吧..我不想做深拷贝(因为它需要太多时间,所以我坚持使用浅拷贝),但话又说回来我有不知道何时删除析构函数中的数据数组的问题(因为我两次调用析构函数并且只有一次数据,另外,对析构函数的第一次调用可能来自插入/移动容器中的元素,所以那时我仍然需要数组数据)。

我考虑过对数据数组使用像 std::shared_ptr 这样的智能指针,但从我读到的内容来看,它们不调用 delete [] 而是调用 delete - 这很遗憾,因为我有一个普通的数组 []。

现在我有一个解决方案,可以在将类从容器中删除之前手动调用类上的“DeleteArray”函数。它工作得很好,但是..它并不好。

有什么想法吗?

最佳答案

Boost 有一个类似于 shared_ptrshared_array 类,但将使用 delete[],或者您可以向 添加自定义删除器>shared_ptr 这将使它调用 delete[]

关于c++ - 如何使用包含大量数据的类元素处理 STL 容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4777069/

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