我正在尝试使用std :: copy_if(),并且从http://www.cplusplus.com/reference/algorithm/copy_if/弄清楚了该语法的工作原理:
auto it = std::copy_if (foo.begin(), foo.end(), bar.begin(), [](int i){return !(i<0);} );
Run Code Online (Sandbox Code Playgroud)
最后一个论点是我感到困惑的一个。括号用于什么?我可以使用在其他地方编写的函数作为参数,它如何工作?如果指定要传递给该函数的变量,是否可以将另一个参数传递给该函数?
我想我的总体问题是我在哪里可以找到这些语法。使用此示例,我可以声明一些非常简单的内容,但是我希望能够做更多的事情。我已经找到了一些地方来解释一元谓词应该做什么和不应该做什么,但是实际上却没有解释如何声明一个谓词以及这意味着什么。我对c ++中的算法还是有些陌生,希望能学习如何更有效地使用它们。