【发布时间】:2017-07-05 07:17:24
【问题描述】:
我想对以下代码使用 lambda 表达式,
long long noOfways =0;
auto dist =0;
for(auto iter = noChocolets.begin()+1;iter!=noChocolets.end();iter++)
{
dist+=*(iter)-*(iter-1);
noOfways+= minOper(dist);
}
我特别想将 for 循环 转换为 lambda 表达式。我怎样才能做到这一点?
【问题讨论】:
-
为什么要使用 lambda?
-
你为什么要改变一个工作代码,(我认为)不需要重构?
-
@Ansu - 这是一个 XY 问题。你有一个问题 X,你问你想到的(错误)解决方案,Y。所以直接问 X。
-
@Ansu 顺便说一句,你有一个潜在的错误潜伏在
for循环中......如果noChocolets是空 怎么办?那么noChocolets.begin() + 1是未定义的! -
@Someprogrammerdude - 前进到基于 for 的范围当然需要一些重组。然而,并非不可能。