我想了解如何在 C++中使用Lambda 函数。
我正在使用自定义类型,如下所示:
struct my_toy_t {
uint32_t id;
cv::Rect box;
cv::Mat data;
}
typedef std::map<uint32_t, my_toy_t*> my_toy_map_t;
和:
int main() {
my_toy_map_t input_map;
my_toy_map_t output_map;
// Some insertions in input_map...
my_toy_map_t::iterator it;
for (it = input_map.begin(); it != input_map.end(); ++it)
{
if (check_cond(it->second->box)) {
output_map.insert(std::make_pair(it->first, it->second));
input_map.erase(it->first);
}
}
return 0;
}
bool check_cond(cv::Rect box) {
if (box.area > 100)
return true;
else
return false;
}
可能会注意到这my_toy_map_t
只是一个std::map<uint32_t, my_toy_t*>
,check_cond
函数检查一个简单的条件。
是否可以使用 Lamba 函数翻译此代码(插入output map
和删除input_map
ifcheck_cond
返回)?true