开发者社区 > 云原生 > 容器服务 > 正文

C++迭代器和容器类怎么建立联系的?

我看了一些书 书上光说了迭代器怎么用,但是我不知道容器和迭代器怎么联系的,因为书上没有完整的代码。
比如说如下代码:
set actors1;
set actors2:
set result;
set::iterator role; ( 1 )
如上所示, 我不明白(1)那句是什么意思 难道说在容器类中已经定义了要使用的迭代器吗?
还是说这句话就建立了这个类和这个迭代器的联系。
之后的代码利用 copy 函数将actors1和actors2赋给了result 然后用左包含的方式遍历了整个数据项 那么迭代器是不是在copy过程中被改变了?书上还说如果改变基本容器,迭代器会失效,那它岂不是失效了?那么它又是什么确定的呢?应该是我理解有误吧?

展开
收起
a123456678 2016-03-05 15:05:46 2182 0
1 条回答
写回答
取消 提交回答
  • 迭代器是模版,容器按照它的标准来进行元素遍历。
    改变容器的话,需要重新生成迭代器,不能用之前保存的迭代器,因为它还是用的之前位置。
    一般使用为:
    set m; //或其它类型,作为介绍一般写为 set 这种泛型的
    然后使用迭代器:
    set::iterator it;
    it = m.begin();
    这样表面迭代器it当前值是容器m的开始,以后可以使用it++得到下一个迭代器。
    如果用循环可以使用:
    for(it = m.begin; it != m.end(); ++it)

    2019-07-17 18:53:33
    赞同 展开评论 打赏

国内唯一 Forrester 公共云容器平台领导者象限。

相关电子书

更多
使用C++11开发PHP7扩展 立即下载
GPON Class C++ SFP O;T Transce 立即下载
GPON Class C++ SFP OLT Transce 立即下载