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为一对迭代器