copy_if函数及其参数

时间:2018-08-04 09:11:37

标签: c++11 lambda

有人请您详细解释一下此行代码的内容吗?请详细说明该函数接受的参数。该函数通常还使用哪些参数? copy_if函数仅适用于矢量吗?对于第三个逗号后的最后一部分,我尤其感到困惑。“ [](int x){return x%2;`” ...

这是我不明白的代码行>>>>>>>>>>>>>>>>>>>>>>>>>>>>> std::copy_if(array.begin(), array.end(), std::back_inserter(odds), [] (int x) {return x % 2;});

我了解到它是从array(它是一个向量)中复制的,并且在“ vector<int>”赔率中“向后插入”。

此外,每当我通过Google搜索解释时,都会带我去那些解释比较模糊的网站。要么,有人可以教我如何理解他们的胡言乱语,要么您将我指向一个可靠的资源来学习这些东西?例如,此链接描述了while循环和一元谓词,而我只是迷路了。

1 个答案:

答案 0 :(得分:2)

[] (int x) {return x % 2;}

这只是lambda函数,您可以满足复制的先决条件。

仅请注意,此函数在执行时将给出对应于0的{​​{1}}或对应于false的{​​{1}}。如果条件/ lambda的值为1,则将进行复制,否则将不进行复制。