博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
const_iterator思考
阅读量:7081 次
发布时间:2019-06-28

本文共 793 字,大约阅读时间需要 2 分钟。

之前在对于std内iterator的使用并没有太关心,一般是建立容器后,要进行遍历打印,查找之类的操作,但这种无需修改原来容器内的值的操作,比较好的策略是声明为const_iterator;

比如:

 

vector
lVec; lVec.push_back(1); lVec.push_back(2); lVec.push_back(3); std::vector
::const_iterator lIter = lVec.begin(); cout << *lIter << endl; lIter = lVec.begin()+1; cout << *lIter << endl; *lIter = 10;//Error will occur, *lIter shouldn't be changed. ++lIter;

但这样打印是可以的:

 

 

vector
lVec; lVec.push_back(1); lVec.push_back(2); lVec.push_back(3); for (vector
::const_iterator iter = lVec.begin(); iter != lVec.end(); ++iter) { cout << *iter << endl; }

但最爽的是利用boost::each,估计被boost优化掉了,等有时间看下它的实现:

 

 

vector
lVec; lVec.push_back(1); lVec.push_back(2); lVec.push_back(3); BOOST_FOREACH(int &aData,lVec) { cout << aData << endl; }

 

 

转载地址:http://bgoml.baihongyu.com/

你可能感兴趣的文章
模拟复数及其运算
查看>>
IOS上路_01-Win7+VMWare9+MacOSX10.8+XCode4.6.3
查看>>
给Visual Studio 2010添加Windows Phone 7模板
查看>>
一次 web 工程性能测试
查看>>
wordpress 伪静态nginx设置
查看>>
今天写sql无意中发现了一个深坑
查看>>
记一次dell R720服务器ESXI5.5系统宕机的奇葩经历
查看>>
CMD一键获取 所有连接过的WIFI密码
查看>>
RabbitMQ
查看>>
android 下修改 hosts文件 及 out of memory的解决
查看>>
cocos2d win7 安卓环境配置开发
查看>>
java面试题之六(转)
查看>>
jQuery零基础入门——(六)修改DOM结构
查看>>
Java8 当 Lambda 遇上受检异常
查看>>
什么是竞态条件? 举个例子说明。
查看>>
PM日记:小试1 中午时光
查看>>
opensans字体
查看>>
FLEX入门学习路线图
查看>>
(六)用JAVA编写MP3解码器——帧数据结构
查看>>
Syntax error, parameterized types are only available if source level is 1.5
查看>>