您的位置:首页 > 其它

vector 的一道改错题

2007-11-02 02:16 225 查看
c++的stl,真是一项伟大地发明。佩服一下。最近编程,觉得一是更加注重整个设计方面的知识,这要学习设计模式方面的知识,一个是应该对朝泛型方面发展,以前写的程序都太偏c了。

最近看到一个 vector的改错题,如下:


#include <iostream>


#include <vector>


using namespace std;




int main()




...{


vector<int> array;


array.push_back(1);


array.push_back(6);


array.push_back(6);


array.push_back(3);


vector<int>::iterator itor;


vector<int>::iterator itor2;




for(itor =array.begin(); itor!=array)




...{


if(6) ==*iter;




...{


itor2 = itor;


arrayl.erase(itor2);




}


}


it


}

这里要注意,iteator 赋值,iterator2被itor赋值后,就变成了itor1,如果iror1变了,itor2等于现在的itor1,如果

注意earase函数,这个指向下一个元素,两种作用,上面的算法只能删除第一个6,然后itor跳转到第二个人,但是同时itor有自增的,随意指向隔了一个6的3,于是中间的那个6被略了。

stl 强大但是知识点众多,目前还要抓紧学习学习。。。。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: