首页 > 解决方案 > copy_if 函数及其参数

问题描述

有人会详细解释这行代码的作用吗?请详细说明该函数接受的参数。该函数还有哪些常用的参数?该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>赔率中。

此外,每当我通过谷歌搜索解释时,它都会将我带到解释相当模糊的网站。要么,有人会教我如何理解他们的胡言乱语,还是你会给我指出一个可靠的来源来学习这些东西?例如,这个链接描述了一个while循环和一元谓词,我只是迷路了。

标签: c++11lambda

解决方案


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

这只是一个 lambda 函数,用于满足复制的先决条件。

只要看到这个函数在执行时会给出0对应的false,或者1对应的true。如果条件/ lambda 计算结果为true,则复制将发生,否则不会。


推荐阅读