vector的clear()注意事项

作用

clear()删除储存在vector中的所有元素
如果vector的元素是一些object, 则它将为当前储存的每个元素调用它们各自的析构函数
如果vector储存的是指向对象的指针, 此函数并不会调用到对应的析构函数

值得注意的是

vector<datatype> temp(50);//定义了50个datatype大小的空间。

temp.clear();

作用:

将会清空temp中的所有元素,包括temp开辟的空间(size),但是capacity会保留

即不可以以temp[1]这种形式赋初值,只能通过temp.push_back(value)的形式赋初值。

同样对于:

vector<vector<datatype>> temp1(50)

使用temp1.clear()之后将会不能用temp1[1].push_back(value)进行赋初值

只能使用temp1.push_back(temp);

C++11

原文地址:https://www.cnblogs.com/chongjz/p/12643133.html