关于迭代器

大家都知道在STL中,通过迭代器来访问容器,假设我们现在有迭代器iter

1.迭代器类似指针,其内容是保存指向的内容的地址;

2.在vector和deque中,元素是存储在连续的内存空间中的,所以可以通过迭代器+n来寻找下一个内存地址;而在list中,却不可以通过迭代器+n的方式来进行随即访问,因为list内的元素并不是存储在连续的内存空间中的,而是通过指向下一个元素和前一个元素的指针链接在一起的,这类似于双向链表;

3.在list容器中,却可以通过++iter、iter++、--iter、iter--来访问前一个元素或上一个元素,我想应该是这样的,一个元素中应该包含元素数据、指向前一个元素的指针、指向后一个元素的指针,当执行++或--操作的时候,其实是把元素的指向后一个元素的指针或指向前一个元素的指针赋值到迭代器中。见下图:

迭代器相关

 

以上纯属个人见解,如有错误请指教,本人正学C++,想有一起学习的加QQ群:17877720

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值