指针&迭代器—简介与区别

学习STL的同学经常会看到一个名词——迭代器,在以前的学习中也一定听说过指针,它俩的同和异有哪些呢?

推荐学习指针的博客:https://blog.youkuaiyun.com/c20190102/article/details/71092931

我自己也说几句。

迭代器(iterator)是C++为了便于提取STL容器中元素而设的一个类型,它同指针一样具有==,!=,++,--的操作。但迭代器是类模版,而指针是指向一个元素的地址的类型,性质上就是不同的,千万不能混为一谈。

迭代器与指针很像,也有*(解除引用操作)、->(结构体访问成员操作)和加减法。
加减要特别提一下。指针中的加减指的是地址上的加减;迭代器的加减是按那个特点容器的加减来定义的,一般是获得下(上)一个元素的迭代器。

对于STL中的begin()和end()函数,S(hen)B(en)正老师告诉我,它的有效范围是begin()~end()-1,end()上是空的。难怪sort(a+1,a+n+1),+n还要再+1;而sort(begin(),end())却不必+1。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值