c++ STL标准容器之Iterator使用

C++ STL绝大多数标准容器都提供了Iterator,一些容器,比如priority_queue,因为语意上就不应该允许随便遍历容器中的元素,所以也就没有Iterator了。

23种经典设计模式中就有迭代器模式,java集合框架也实现了这个模式:

package java.util;  


public interface Iterator<E> {  

    boolean hasNext();  

    E next();  


    void remove();  
}  

c++的迭代器要比java更灵活,主要体现在:
1.java只有从前向后的一种迭代器,c++除了从前向后迭代器外,还提供了从后向前的迭代器,比如:

map<int,int> amap;  
amap.insert(pair<int,int>(1,1));  
amap.insert(pair<int.int>(2,2));  
map<int,int>::iterator it;  
for(it = amap.begin();it != ampa.end();it++)//从前向后  
{  
    cout<<"key:"<<it->first<<" value:"<<it->second<<endl;  
}
......
map<int,int>::reverse_iterator rit;  
for(rit = amap.rbegin();rit != amap.rend();rit++)//从后向前  
{  
     cout<<"key:"<<rit->first<<" value:"<<rit->second<<endl;  
}  

2.c++除了iterator之外,还提供了const_iterator,后者只能读取集合中的数据,但是不能改变其值.

3.java的迭代器貌似只能单步自增,而c++的迭代器 除此之外,还可以实现算数操作,比如+n,-n,这样对于需要随机读取某个元素的场景就就很有用了,但是,貌似只有 vector的iterator才支持算数操作。也就是说前面例子中的迭代器it是不能进行 it = it+n之类的操作的。这一点要切记。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C++ STL标准模板库)是C++标准库的一部分,提供了一组通用的数据结构和算法。STL标准库中文文档涵盖了STL的各个部分,包括容器(container)、迭代器(iterator)、算法(algorithm)等。 STL中文文档可以帮助开发者更好地理解和使用STL库,具体内容包括: 1. 容器STL库提供了多种容器类型,如vector、list、map等,这些容器提供了不同的数据存储和操作方式。文档会介绍每种容器的特点、用法和示例代码。 2. 迭代器:迭代器是与容器配合使用的一种机制,通过迭代器可以访问和遍历容器中的元素。文档会介绍迭代器的种类、使用方法以及常见操作。 3. 算法:STL库提供了众多的算法,如排序、查找、复制等,可以在不同的容器上进行操作。文档会详细介绍每个算法的功能、参数和使用示例。 4. 函数对象:STL库提供了函数对象机制,可以将函数或函数对象作为算法的参数,用于执行特定的操作。文档会介绍函数对象的定义和使用方式。 STL标准库中文文档的作用主要有两个方面:一是帮助新手学习和理解STL库的使用方法,提供了丰富的示例和解释;二是方便开发者在实际项目中使用STL库,对于算法和容器的选择和使用提供了参考和指导。 总之,STL标准库中文文档是一份重要的资料,对于学习和使用C++的开发者来说都具有很大的价值。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值