И это всё МОЁ

проблема в том что min_element берет по умолчанию первый элемент в качестве результата, делать remove_if а если контейнер только для чтения?


вот пример, результат 20, мне нужно «not found»


#include <utility>
#include <vector>
#include <iostream>
#include <algorithm>

int main()
{
std::vector< std::pair<bool, int> > v = { {false, 20}, {false, 3}, {false, 11}, {false, 7}, {false, 12} };
auto it = std::min_element(v.begin(), v.end(),
[](const std::pair<bool, int> & p1, const std::pair<bool, int> & p2)
{
if(p1.first && p2.first)
return p1.second < p2.second;

return p1.first;
});

if(it != v.end())
std::cout << (*it).second << std::endl;
else
std::cout << "not found" << std::endl;

return 0;
}









 ,