我看了一些书 书上光说了迭代器怎么用,但是我不知道容器和迭代器怎么联系的,因为书上没有完整的代码。
比如说如下代码:
set actors1;
set actors2:
set result;
set::iterator role; ( 1 )
如上所示, 我不明白(1)那句是什么意思 难道说在容器类中已经定义了要使用的迭代器吗?
还是说这句话就建立了这个类和这个迭代器的联系。
之后的代码利用 copy 函数将actors1和actors2赋给了result 然后用左包含的方式遍历了整个数据项 那么迭代器是不是在copy过程中被改变了?书上还说如果改变基本容器,迭代器会失效,那它岂不是失效了?那么它又是什么确定的呢?应该是我理解有误吧?
迭代器是模版,容器按照它的标准来进行元素遍历。
改变容器的话,需要重新生成迭代器,不能用之前保存的迭代器,因为它还是用的之前位置。
一般使用为:
set m; //或其它类型,作为介绍一般写为 set 这种泛型的
然后使用迭代器:
set::iterator it;
it = m.begin();
这样表面迭代器it当前值是容器m的开始,以后可以使用it++得到下一个迭代器。
如果用循环可以使用:
for(it = m.begin; it != m.end(); ++it)
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。