这可能是一个愚蠢的问题,但只是想知道是否有任何解决方法.:)
是否有任何方法在谓词中有"不"?
例:
std::remove_if(s.begin(), s.end(), !IsCorrect);
// ^
Run Code Online (Sandbox Code Playgroud)
或者,我是否必须创建IsNotCorrect函数?
Ste*_*sop 18
你可以使用它std::not1,它否定了一元谓词:
#include <functional>
std::remove_if(s.begin(), s.end(), std::not1(std::ptr_fun(IsCorrect)));
Run Code Online (Sandbox Code Playgroud)
如果IsCorrect是一个Adaptable函数,那么你不需要ptr_fun,但如果它只是一个简单的函数那么你就可以.