Pao*_*man 2 c++ memory-leaks vector
如果我在C++中执行以下操作会发生什么:
vector<int> vect;
vect = vector<int>(8);
vect = vector<int>(3);
Run Code Online (Sandbox Code Playgroud)
第二行中分配的八个整数是否会在最后一行被删除,还是会被分配但丢失?(即内存泄漏)
不,没有内存泄漏.像所有精心设计的资源管理类一样,vector
重载其赋值运算符以做正确的事情.
它将重用其内存; 或解除分配并分配新块; 或者,使用移动语义,取消分配它并从分配的临时向量中获取内存.