我有一个包含数据的二维向量,如果元素/块不值得考虑(基于谓词函数),我需要删除它们。这是功能:
bool thresholdNegative (vector<double> val)
{
//short threshold = 10000;
double meansquare = sqrt ( ( std::inner_product( val.begin(), val.end(), val.begin(), 0 ))/(double)val.size() );
if(meansquare < 0)
{
return true;
}else{
return false;
}
}
我使用以下内容:
std::remove_if(std::begin(d), std::end(d), thresholdNegative);
d
包含所有数据的二维向量在哪里。
问题在于:它似乎没有从块中删除任何信息,即使该函数thresholdNegative
确实返回 true。
任何想法为什么?