C++的迭代器和指针

来源:互联网 发布:淘宝优惠券怎么修改 编辑:程序博客网 时间:2024/06/11 20:42
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的迭代器的值了
0 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 月经推迟两个月了还不来怎么办 四个月月经不来怎么办 快两个月没来月经了怎么办 月经停了两个月怎么办 别人诬告我我该怎么办 有人造谣我我该怎么办 宝宝晚上不睡觉哭闹怎么办 婴儿晚上不睡觉哭闹怎么办 2月宝宝排便困难怎么办 3岁宝宝老是哭闹怎么办 2岁了囟门闭合晚怎么办 宝宝卤门闭合慢怎么办 手经常碰水脱皮怎么办 迅雷文件已移除怎么办 手机不读sd卡怎么办 g买卖卖错账号怎么办 森林被野人拖走怎么办 我的世界没有羊怎么办 黑魂3杀死铁匠后怎么办 幻境7下8走错了怎么办 换了手机号微信怎么办 微信游戏没了怎么办 找sf网站被劫持怎么办 护发精油抹多了怎么办 用了护发素洗头怎么办 电脑c盘空间不足怎么办 把水蛭吃肚子里怎么办 不小心喝到蚂蟥怎么办 水蛭喝进肚子里怎么办 蚂蝗钻入皮肤里怎么办 孩子屁眼红疼怎么办啊 宝宝屁眼红疼怎么办4岁 屁股眼上火很疼怎么办 屁股上火了很痛怎么办 脚被虫子咬肿了怎么办 人在低谷的时候怎么办 支付宝忘了密码怎么办 忘了支付宝账号怎么办 支付宝账号丢了怎么办 生完孩子奶水不足怎么办 生完宝宝没奶水怎么办