Vector小记

来源:互联网 发布:json key value 数组 编辑:程序博客网 时间:2024/05/18 02:27

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是不会调用自定义析构函数的 除非是特定系统类型




0 0
原创粉丝点击