C ++转换和lambda

时间:2015-05-17 17:53:37

标签: c++ lambda map-function

是否可以将其转换为std::transform的简单而美观的用法?

int j = 0;
for (auto &vi : V)
{
    auto div_res = div(vi + j, 10);
    j = div_res.quot;
    vi = div_res.rem;
}

这段代码做了一件非常简单的事情,感觉应该更短更清晰。

或者,如果没有变换,是否有任何std函数可以使这类事情变得更容易?

1 个答案:

答案 0 :(得分:3)

怎么样:

 public class DriveCommandLine {

  private static String CLIENT_ID = "37895131772";
  private static String CLIENT_SECRET = "laUVGRI53uXzT90Ag880HSkT";
  private static String REDIRECT_URI = "urn:ietf:wg:oauth:2.0:oob";
 ....

然而,在这种情况下,基于范围的std::transform(vi.begin(), vi.end(), vi.begin(), [&j](auto elem) /* or const auto& elem */ { auto div_res = div(elem + j, 10); j = div_res.quot; return div_res.rem; } ); 可能与for一样好(如果不是更好)。