有人请您详细解释一下此行代码的内容吗?请详细说明该函数接受的参数。该函数通常还使用哪些参数? 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循环和一元谓词,而我只是迷路了。
答案 0 :(得分:2)
[] (int x) {return x % 2;}
这只是lambda函数,您可以满足复制的先决条件。
仅请注意,此函数在执行时将给出对应于0
的{{1}}或对应于false
的{{1}}。如果条件/ lambda的值为1
,则将进行复制,否则将不进行复制。