C++的迭代器和指针

    1:首先迭代器是一种专门为访问容器而设计的一种数据类型,同时也是一种数据结构,类模板,他提供来比下标操作更为通用的 方法,对所有的容器有适用;

    2:每个容器都有自己的iterator类型,如vector<int>::iterator

    3:begin和end操作,begin()返回迭代器的第一个元素,end()返回容器最后一个元素的下一个元素,如果vector为空,则begin返回的迭代器于end相同。

    4:迭代器的使用类似于指针,可以经行解引用,加减,相等等操作

    5:迭代器的类型:const_iterator和const iterator

          const_iterator是一个指向常容器的迭代器,自身是个变量,但是指向的直不能改变;

          const iteratro是一个指向容器的常迭代器,自身是个常量,一旦赋值,不能改变其指向的直;

    6:迭代器和指针的差别

         指针其实是狭义的迭代器,迭代器是指针的抽象。指针用于指向单个对象,而迭代器用于访问容器内的元素。

         迭代器是具有类似指针行为的class template。也就是重载了operator-> operator* operator++等操作符的类模板。

         由于指针的使用可能产生不可预料的过程,所以在现代的C++中采用vecator和interator代替一般的数组,string类型代替一般的字符串。C++中更偏向于使用容器类。

    7:地雷:任何改变vector长度的操作都会使已存在的迭代器失败。例如,在调用push_back之后,就不能再信赖指向vector的迭代器的值了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值