【发布时间】:2017-08-09 20:01:11
【问题描述】:
有没有办法确保我的对象在循环缓冲区中被覆盖之前被删除?这是一些代码来说明我的问题。
boost::circular_buffer<MyObject*> cBuf(5);
cBuf.push_back(new MyObject()); // cBuf[0]
cBuf.push_back(new MyObject()); // cBuf[1]
cBuf.push_back(new MyObject()); // cBuf[2]
cBuf.push_back(new MyObject()); // cBuf[3]
cBuf.push_back(new MyObject()); // cBuf[4]
// before this overwrite occurs, how do i make sure the pointer
// position cBuf[0] is deleted?
cBuf.push_back(new MyObject()); // this will overwrite position 0
【问题讨论】:
-
我在这里陷入了石器时代,只能使用没有 c++11 规范的 gcc 4.4.7,因此没有
std::make_unique所以没有智能指针 -
您可以(并且应该)编辑您的问题,而不是在 cmets 中添加重要信息。
标签: boost circular-buffer