反向迭代器的用法

每一个容器里面都有Iterator(迭代器),可以从容器的begin位置到end位置,通过++来遍历。
同样也有个反向迭代器reverse_iterator,从rbegin(=end-1)到rend(=begin-1)反向遍历,仍然通过++
可见能反向迭代的容器,应该是一个双向链表。

反向迭代器的用法:
ostream& operator<<(ostream& out, list<int> lst){
    list
<int>::iterator iter=lst.begin();
    
while(iter!=lst.end())
        
out<<setw(4)<<*iter++;
    
out<<endl;
    
return out;
}

int main(){
    
int a[]={2,-1,3,5,-9,11,2,1};
    list
<int> lst(a,a+sizeof(a)/sizeof(int));
    cout
<<lst;
    list
<int>::reverse_iterator rIter=lst.rbegin();//rbegin = reverse begin
    while(rIter!=lst.rend())//rend= reverse end
        cout<<setw(4)<<*rIter++;
    system(
"pause");
}

输出:
2  -1   3   5  -9  11   2   1
1   2  11  -9   5   3  -1   2

posted on 2008-10-24 23:43 deep2 阅读(2549) 评论(0)  编辑 收藏 引用 所属分类: 链表


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理


<2008年10月>
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678

导航

统计

常用链接

留言簿(1)

随笔分类

随笔档案

搜索

最新评论

阅读排行榜

评论排行榜