【C++】コード実装:vectorにおけるremove_if lambda式を使用する高度なテクニック
一、コード説明:
vectorのデータ型はカスタマイズされており、vector内のデータを1つ以上の条件で消去する必要があります.
二、コード実現:
Areaの規定期間:[minArea,maxArea)に従いvectorLabelsInfo中の期間外のデータをクリアする.
注意:lambdaの値が定数ではなく、外部変数(格納された値)を参照する必要がある場合は、参照する変数名を前のカッコ[]に配置します.複数の変数間をカンマで区切ります.
Lambda表現技術は本当にかっこいいです.
vectorのデータ型はカスタマイズされており、vector内のデータを1つ以上の条件で消去する必要があります.
struct LabelInfo
{
cv::Rect Rectangle;
int Area;
cv::Point2f Centroid;
};
std::vector LabelsInfo;
二、コード実現:
Areaの規定期間:[minArea,maxArea)に従いvectorLabelsInfo中の期間外のデータをクリアする.
注意:lambdaの値が定数ではなく、外部変数(格納された値)を参照する必要がある場合は、参照する変数名を前のカッコ[]に配置します.複数の変数間をカンマで区切ります.
LabelsInfo.erase(remove_if(LabelsInfo.begin(), LabelsInfo.end(),
[minArea, maxArea](LabelInfo n){ return n.Area < minArea || n.Area >= maxArea ; }),
LabelsInfo.end());
Lambda表現技術は本当にかっこいいです.