stl模板vector使用中注意:
at取值与[]取值区别:at越界判断,[]没有越界判断,但at效率要低于[]。
at取值后返回常量,不能作为左值,[]可作为左值,也可为右值。
循环遍历vector进行删除时切记 如下例子 注意 迭代器在删除时的同步更新
vector<TYPE> vec;
for(vector<TYPE>::iterator iter = vec.begin();iter != vec.end();++iter)
{
iter = vec.erase(iter);//切记迭代器的及时更新
}
另外Type若为自定义对象或结构体。要调用结构体析构函数必须使用 delete vec[i] /delete vec.at(i);
clear是不会调用自定义析构函数的 除非是特定系统类型