STL:迭代器iterator

本文介绍了迭代器模式,强调了STL中数据容器与算法的分离原则。STL的三大核心组件包括容器、算法和迭代器。迭代器作为智能指针,允许外部访问容器元素而不暴露其内部结构。文章提到了迭代器的五种基本实现,并讨论了可能导致迭代器失效的情况,如关联式容器结构变化和顺序式容器的扩容。最后,展示了使用begin()和end()以及C++11增强for循环进行迭代器遍历的方法。
摘要由CSDN通过智能技术生成

迭代器模式

迭代器模式:提供一种方法,使得外部可以依次访问内部的元素,而不需要明确其结构的内部实现。

STL的中心思想是:数据容器与算法分离,彼此独立设计,最后通过一定的融合技术将两者结合使用。

STL三大基本组件:容器、算法、迭代器


Iterator find(Iterator first,Iterator last,const T& val)
{
   
    
    while(first!=last && *first!=val)
    {
   
        first++;
    }
    return first;  //若没找到 将返回末尾的下一个 即 .end()

}

find算法无需知道具体的容器实现,而只要Iterator提供实现即可

STL的迭代器实现

STL迭代器是一种smart pointer :其能够像指针一样执行解指针* ->访问内部数据,同时支持迭代到下一个元素

以list为例,其一个参考的实现如下:

class listitem
{
   
public:
    int value() const{
   return val;}
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值