C++中容器迭代器的基本使用方法3-1

可以通过迭代器访问vector容器或者string中的元素。用vector<T>::iterator来表示迭代器。

1 begin()函数和end()函数

通过vector类的begin()和end()方法可以获取iterator。其中由begin()获取到的iterator叫做起始迭代器,由end()获取到的iterator叫做超出末端迭代器。起始迭代器指向vector保存的第一个数据,超出末端迭代器指向vector保存的最后一个数据的“下一个数据”。

2 相关代码

相关代码如图1所示。

图1 相关代码

其中,v1是包含了6个int类型元素的vector,it_begin是v1的起始迭代器,it_end是v1的超出末端迭代器。

3 起始迭代器和超出末端迭代器

起始迭代器和超出末端迭代器中包含了一个叫做ptr的变量,用于保存迭代器指向的内存地址,如图2所示。

图2 ptr变量

从图2中可以看出,起始迭代器it_begin的ptr值是0x009fd190(图2①),而超出末端迭代器的ptr值是0x009fd1a8(图2②)。

图3显示的是地址是0x009fd190的内存中的内容,图4显示的地址是0x009fd1a8的内存中显示的内容。

图3 0x009fd190的内存中的内容

图4 0x009fd1a8的内存中显示的内容

从图3中可以看到,起始迭代器的ptr指向的内存正是v1的第一个元素的地址。从图4可以看出超出末端迭代器的ptr指向的内存正是v1的最后一个元素(0x00000005)的“下一个元素”(0xfdfdfdfd)。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值