有一个数组std::vector<unsigned int> mas
,你需要找到非零元素中的最小值。
通过这种方式可以轻松找到最小值:
auto min_pos = std::min_element (mas.begin (), mas.end (), [&](unsigned int a, unsigned int b){ return a < b; });
unsigned int m = *min_pos;
我专门用 lambda 编写,因为(在我看来)我需要向其中添加一些棘手的东西,到底是什么 - 我无法弄清楚。
修改数组是不可能的;如果可以的话,我会std::remove
根据拇指进一步做。
我会非常简短:),这就是 lambda:
我想出了这个选项
但也许有更好的方法?
让我们设置零值大于任何其他值的完整顺序:
lambda 被重构为Harry在评论和回答中提供的形式: