【发布时间】:2011-06-14 04:57:40
【问题描述】:
我正在寻找一种方法将大型数据数组(存储在具有基本功能的类中,例如检查数据、大小等)放入任何 STL 容器中,例如向量或队列(FIFO 队列是最好的,因为我有一个生产者和一个消费者)。
问题是我必须实现复制构造函数并且......好吧..我不想制作深拷贝(因为它需要太多时间,所以我坚持浅拷贝),但又一次我有不知道何时删除析构函数中的数据数组的问题(因为我两次调用析构函数并且只有一次数据,另外,对析构函数的第一次调用可能来自在容器中插入/移动元素,所以那时我仍然需要数组数据)。
我考虑过对数据数组使用像 std::shared_ptr 这样的智能指针,但从我读到的内容来看,它们不调用 delete [] 而是调用 delete - 这是一种耻辱,因为我有一个普通的数组 []。
现在我有一个解决方案,可以在将类从容器中删除之前手动调用类上的“DeleteArray”函数。它工作得很好,但是......它不是很好。
有什么想法吗?
【问题讨论】:
标签: c++ arrays performance stl large-data