Chinaunix首页 | 论坛 | 博客
  • 博客访问: 299292
  • 博文数量: 94
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 202
  • 用 户 组: 普通用户
  • 注册时间: 2014-08-08 20:07
文章分类

全部博文(94)

文章存档

2017年(19)

2016年(30)

2015年(12)

2014年(33)

我的朋友

分类: LINUX

2017-05-04 17:20:50

STL迭代器系以指针为根据塑模出来,所以迭代器的作用就像个T *指针。声明迭代器为const就像声明指针为const一样(即声明一个T * const指针);

如果你希望迭代器所指向的内容不可被改变,你需要的是const_iterator。

点击(此处)折叠或打开

  1. std::vector<int> vec;
  2. ...
  3. const std::vector<int>::iterator iter = vec.begin(); //iter像个T * const
  4. *iter = 10; //没问题
  5. ++iter; //错误!!,iter是const

  6. std::vector<int>::const_iterator cIter = vec.begin(); //像个const T *指针
  7. *cIter = 10; //错误!!!
  8. ++cIter; //没问题

阅读(1200) | 评论(0) | 转发(0) |
0

上一篇:memory barrier

下一篇:C++初始化顺序

给主人留下些什么吧!~~