c++ - 为什么在 C++ 中将较大函数中的某些功能编写为 lambda?

标签 c++ c++11 lambda

我的印象是,编写只做一件事的清晰函数比编写一个做多件事的相对较大的函数并将其作为 lambda 封装更好?

最佳答案

很多时候,尤其是在标准库中的算法中,需要提供一个简短的函数。一些明显的例子是超短函数,它“告诉”std::sort 如何正确比较两个值(假设您正在使用多个键对您自己类型的 vector 进行排序,并且您想按其中一个键对“这次”进行排序)。

在这些情况下,过去(C++11 之前)需要将短函数编写为命名函数。这样做通常会污染 namespace 并解决这个问题 - 引入了 lambda。

这并不违反“一个函数 - 一件事”的原则,因为在这种情况下,lambda 只是一个就地短代码的支持快捷方式,否则需要将其放入一个独立的命名函数中。

关于c++ - 为什么在 C++ 中将较大函数中的某些功能编写为 lambda?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50230806/

相关文章:

c++ - 如何排序比 n log n 更快(给定列表上的强条件)?

c++ - 包装在 C++/CLI 中使用 native 接口(interface)的 native C++ 代码

c++ - 用于 xml 标签内容的单一匹配的正则表达式

java - Kotlin lambda 回调的单元测试

python - python lambda/fn 可以代表任意调用者产生吗?

php - 如何在 PHP 中访问运行时创建的函数中的解析错误?

c++ - 如何让一个 qwidget 知道另一个 qwidget 在它上面

c++ - 使用 libcurl 上传文件

c++ - 修改函数以使用 SSE 内在函数

c++ - 有人可以解释这个 unique_ptr 代码发生了什么吗?