vector 的一道改错题

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

 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值