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
}
#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 强大但是知识点众多,目前还要抓紧学习学习。。。。。。