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 强大但是知识点众多,目前还要抓紧学习学习。。。。。。
最近看到一个 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 强大但是知识点众多,目前还要抓紧学习学习。。。。。。
相关文章推荐
- 一道C语言改错题
- 又一道关于STL中的vector容器的面试题
- Collection与Collections的区别,ArrayList和Vector的区别-----一道面试题
- hdu 3823 素数打表+vector可变长数组 好烦的一道好题。。。。。
- Collection与Collections的区别,ArrayList和Vector的区别-----一道面试题
- 一道简单的acm题的三种解决方案(数组、单向链表、容器vector)与代码优化
- 一周改错(一道循环,一道数组)
- 一道笔试题:vector::erase()
- 一道关于:ArrayList、Vector、LinkedList的存储性能和特性 的面试题
- 做了一道跑大数据的最短路挂了,基于vector的二维模拟邻接表实现Dijkstra算法(*【模板】)
- 华为的一道改错题的试验
- 一道java笔试题目:Vector和ArrayList的区别
- 连续两天遇到的一道笔试题 vector和list区别
- 联想利泰的一道做出来就给月薪7K的面试题--交通灯管理系统
- 如何使用vector的reserve和resize方法
- C++ vector的最最最基本用法
- C++ vector 的简单实现
- vector中erase用法注意事项
- std::vector::rbegin倒序迭代器