干净地破坏动态定位对象的向量
Clean destruction of a vector of dynamically alocated objects
有没有另一种方法可以释放定位对象的内存,而不是遍历向量/列表?
int main()
{
vector<Class*> v;
v.push_back(new Class(2,2));
v.push_back(new Class(65,65));
v.push_back(new Class(45,23));
for(Class* &it : v)
delete it;
return 0;
}
是的,有。 它被称为智能指针:
std::vector<std::unique_ptr<Class>> v;
v.push_back(std::make_unique<Class>(Class(2,5)));
但是,如果您没有理由使用动态分配的对象,请首选std::vector<Class>
。
住
相关文章:
- 什么时候调用组成单元对象的析构函数
- 对RValue对象调用的LValue ref限定成员函数
- CMake-按正确顺序将项目与C运行时对象文件链接
- 空基优化子对象的地址
- 将对象数组的引用传递给函数
- 你能重载对象变量名本身返回的内容吗
- C++使用整数的压缩数组初始化对象
- 使用 for_each 和 lambda 销毁已定位的对象
- 干净地破坏动态定位对象的向量
- 在创建共享对象时,不能使用针对未定义符号的重定位R_X86_64_PC32;使用-fPIC重新编译
- 在视频中定位对象所需的想法 - OpenCV 和 C++
- VTK 定位摄像机以用对象填充视口
- 首先在具有不同对象的 VBO 中定位
- Google协议缓冲区,在提供的流对象中向后重新定位IO头
- 我应该在我的所有对象需要时将我的服务定位器传递给他们吗
- c++对象的动态地址重定位
- 防止Java重新定位对象
- LRU缓存和快速定位对象通常使用哪些数据结构
- 特定对象的立体对应和三维定位(ROI)
- 在OpenGL中定位一个对象数组