如何解决获取向量元素的内存地址
我需要一个分配的对象的缓存,可以像对象的自由列表一样重复使用。我使用向量的方法有什么问题吗?
template <class T>
class Cache
{
private:
vector<T> objects;
vector<T *> freelist;
public:
Cache(int max_size) : objects(max_size)
{
for (int i = 0; i < objects.size(); ++i)
{
freelist.push_back(&objects[i]);
}
}
public
T *GetFree()
{
T *retval = nullptr;
if (freelist.size() > 0)
{
retval = freelist[freelist.size() - 1];
freelist.pop_back();
}
return retval;
}
public
void Release(T *ptr)
{
freelist.push_back(ptr);
}
};
这行吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。