我的印象是,编写只做一件事的清晰函数比编写一个做多件事的相对较大的函数并将其作为 lambda 封装更好?
最佳答案
很多时候,尤其是在标准库中的算法中,需要提供一个简短的函数。一些明显的例子是超短函数,它“告诉”std::sort
如何正确比较两个值(假设您正在使用多个键对您自己类型的 vector 进行排序,并且您想按其中一个键对“这次”进行排序)。
在这些情况下,过去(C++11 之前)需要将短函数编写为命名函数。这样做通常会污染 namespace 并解决这个问题 - 引入了 lambda。
这并不违反“一个函数 - 一件事”的原则,因为在这种情况下,lambda 只是一个就地短代码的支持快捷方式,否则需要将其放入一个独立的命名函数中。
关于c++ - 为什么在 C++ 中将较大函数中的某些功能编写为 lambda?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50230806/