16,472
社区成员
发帖
与我相关
我的任务
分享
int main()
{
Test t1(1), t2(2);
Test t3(3);
vector <Test> vt;
vt.push_back(t1); // 1
vt.push_back(t2); // 2
vt.push_back(t3); // 3
// 从1到2,vector要重新分配内存,它销毁原有的元素t1,执行1次析构
// 从2到3,vector要重新分配内存,它销毁原有的元素t1,t2,执行2次析构,此时共执行3次析构
// 程序执行完毕时,销毁vt里的三个元素t1,t2,t3,执行3次. 现在一共执行6次
// 销毁定义的t1,t2,t3,执行3次. 到此执行9次析构
vt.clear();
return 0;
}