博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++11新增for循环遍历方法
阅读量:7014 次
发布时间:2019-06-28

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

记录C++11新增for循环遍历方法

1.基于迭代器的for循环:

for_each位于std命名空间下,我们可以看到其定义如下: 

inline _Fn1 for_each(_InIt _First, _InIt _Last, _Fn1 _Func)

{ // perform function for each element

_DEBUG_RANGE(_First, _Last);
_DEBUG_POINTER(_Func);
_For_each(_Unchecked(_First), _Unchecked(_Last), _Func);

return (_STD move(_Func));

}

由上可见其需要三个参数,第一第二表示范围,第三表示一个函数

下边上使用方法:

void add1(int& num)

{
num += 1;
}
void print(const int& num)
{
std::cout << num << std::endl;
}
int _tmain(int argc, _TCHAR* argv[])
{
     int arr[5] = { 1, 2, 3, 4, 5 };
     std::for_each(arr,arr+5,add1);  //区间为前开后闭,此区间元素将会被用作第三个函数的参数去调用
     std::for_each(arr,arr+5,print);  //print 2,3,4,5,6
     return 0;
}

2.基于范围的for循环:

这个比较简单直接上使用方法

使用基于范围的for循环去替换基于迭代器的for循环(for_each)

void main()

{

    int arr[5] = {1,2,3,4,5};

   for(int & num:arr)

   {

        num = num + 1;

   }

   for (int num:arr)

  {

       std::cout<<num<<std::endl;

   }
}

此输出和第一个测试效果完全一样

转载于:https://www.cnblogs.com/doggey/p/4639273.html

你可能感兴趣的文章
【原创】JDK动态代理,此次之后,永生难忘。
查看>>
collection的框架结构
查看>>
c++中的对象复制
查看>>
ubuntu下linux内核源码阅读工具和调试方法总结
查看>>
PHP生成UTF-8编码的CSV文件用Excel打开乱码的解决办法
查看>>
IOS-5个可以帮你优化App的优秀网站
查看>>
ArrayIndexOutOfBoundsException
查看>>
JAVA判断各种类型数据是否为空
查看>>
如何使用kali的Searchsploit查找软件漏洞
查看>>
Vim for Rails developers: Lazy modern configuration
查看>>
十三、Android studio环境的搭建
查看>>
ES6 系列之模板字符串
查看>>
JVM(四)垃圾回收的实现算法和执行细节
查看>>
对象解构与点操作访问究竟谁快
查看>>
Python3入门机器学习(七)- PCA
查看>>
2017阿里,百度,京东java面试+笔试大合集,这些面试题你都会吗?
查看>>
JavaScript数据结构03 - 队列
查看>>
笔记-OC运行时问题扩展
查看>>
PHPstorm 优化、设置与提速篇
查看>>
[iOS] 从 application delegate 引申三点
查看>>