C++中const迭代器 和 const_iterator的区别
来源:互联网 发布:如何获取ims药品数据库 编辑:程序博客网 时间:2024/04/29 13:30
话说这两个区别非常大,但是不太好理解啊,而且感觉解释也是各种绕口。说一下我自己的理解吧。
const迭代器,顾名思义,就是不能改变的迭代器,是常量,其性质是由const决定的。比如说我们这样定义一个const迭代器。
vector<int> vv(10,9);const vector<int> :: iterator iter = vv.begin();则,当程序中出现这样的语句时是错误的
++iter;其原因是iter是一个常量,因此是不能改变的。换句话说,iter只能指向vv的地一个元素,不能指向其他的元素。
但是这样的语句是正确的:
×iter = 10;因为虽然iter不能指向其他的元素,但是其指向的第一个元素的值是可以改变的。
而对于const_iterator来说的话,正好相反。比如我们这样定义
vector<int> vv(10,9);vector<int> :: const_iterator iter;即定义了一个const_iterator迭代器。这个迭代器是可以自己增加的,但是其所指向的元素是不可以被改变的。比如说
for(iter = vv.begin(); iter != vv.end(); ++iter){ cout << *iter << endl;}这样是正确的,即iter本身的值是可以改变的。但是
for(iter = vv.begin(); iter != vv.end(); ++ iter){ *iter = 0;}这样是不对的,因为const_iterator迭代器是不能改变其所指向的元素的值的。
- C++中const迭代器 和 const_iterator的区别
- C++中const迭代器 和 const_iterator的区别
- C++中const迭代器 和 const_iterator的区别
- C++中const迭代器 和 const_iterator的区别
- C++中const迭代器 和 const_iterator的区别
- C++中const迭代器 和 const_iterator的区别
- c++ 中 const_iterator 和 const vector<>::iterator的区别
- c++ 中 const_iterator 和 const vector<>::iterator的区别
- 细究C++中const_iterator与const迭代器的区别
- const_iterator和const iterator的区别
- const iterator ,iterator 和const_iterator的区别
- const iterator 和 const_iterator 的区别
- iterator、const_iterator和const iterator的区别
- const_iterator, iterator和const iterator的区别
- const iterator和const_iterator的区别
- STL中const迭代器与const_iterator区别
- const迭代器与const_iterator类型的区别
- const iterator 和const_iterator区别
- mpc8313erdb.dts
- 开源协议
- 重装系统的一点记录
- C#.NET读取一个文件夹下所有excel文件的代码
- makefile讲解
- C++中const迭代器 和 const_iterator的区别
- 关于万向节死锁(Gimbal Lock)
- 通过URL返回请求的内容 C#
- SSH原理与运用(一):远程登录
- 卡农
- C++的虚基类,抽象类,虚函数,纯虚函数,virtual
- android socket 通信例子
- Deployment Instruction for Freescale MPC8313ERDB Board
- SSH原理与运用(二):远程操作与端口转发