迭代器(iterator)

 1iterator为什么在平时程序设计中被提出来?

在编写程序时,需要对序列中元素进行操作,而不改变序列中元素的初始值如copy(),find()操作就需要用到迭代器。而一些常用的包含迭代器的操作就被写入到STL(standard Template Library )中。

2那iterator到底是什么?

programming principles and practice using C++中这样定义:迭代器(iterator)是对序列元素表示的一种对象。若p,q为2个迭代器则有

p==q;

p!=q;

*p;

*p=val;

val=*p;

++p

个人:这不仅仅是指针,迭代的对象保存某一对象也可以是迭代器

3iterator在平时的程序设计中有何作用?

如:这是别人写的代码
 

char max(char* str)
{
	char ans=str[0];
	for(int i=0;str[i];i++)
	{
 		if(str[i]>ans)
 		ans=str[i];//若str[i]的值大于ans则将ans的值赋为str[i]
	}
	return ans;//返回最大值
}

这是STL中iterator思维的代码

更抽象,更泛用化,不需要考虑数据只需要配置相应的迭代器即可。故在做项目时可以对通用模块方法使用迭代器。

  template<typename _ForwardIterator>   _ForwardIterator为迭代器

__first,  __last为一对迭代器 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值