如果我设置一个现有的vector = vector <int>(num),我会得到内存泄漏吗?

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)

第二行中分配的八个整数是否会在最后一行被删除,还是会被分配但丢失?(即内存泄漏)

Mik*_*our 6

不,没有内存泄漏.像所有精心设计的资源管理类一样,vector重载其赋值运算符以做正确的事情.

它将重用其内存; 或解除分配并分配新块; 或者,使用移动语义,取消分配它并从分配的临时向量中获取内存.