- 1
- 2
- 3
- 4
- 5
- 6
- 7
auto val = map_.at(std::distance(map_.begin(),
std::min_element(map_.begin(), map_.end(), [](std::vector<int> a, std::vector<int> b)
{
return b.at(std::distance(b.begin(), std::min_element(b.begin(), b.end()))) > a.at(std::distance(a.begin(), std::min_element(a.begin(), a.end())));
})));
return val.at(std::distance(val.begin(), std::min_element(val.begin(), val.end())));
говно
еще и вектор копируется
Кстати, а как оно так лихо оббегает map? Там же std::pair<K, V> должны сыпаться, а не тупо значения...
Или map_ совсем не мап, а std::vector<std::vector<int>>?
Да, это должен быть вектор векторов
P.S. Эту хрень надо гонять на связном списке... На векторе она все-таки не будет лагать :)
P.S. Я бы написал это тупо двумя for'ами. Имхо так проще и понятней в данном случае, чем все эти крестоФВП...
если только минимум искать, то я бы тоже. Если бы ещё что-то нужно делать со всеми элементами матрицы, написал бы какой-нибудь flattening_iterator, чтобы стандартные алгоритмы переиспользовать.
а че в бусте ничего такого нету?
И как?
p.s. референс в сигнатуре отклеился
А нефиг в пустых массивах искать минимум :)
> p.s. референс в сигнатуре отклеился
Упс.
как минимум LLVM и Clang собираются без поддержки RTTI и (соответственно) исключений.
О как... Ну тогда придется мутить матричный итератор. С ним и на фейл легко проверить, и что-нибудь сделать с элементом можно будет... Ну и куча копирований убирается, мало ли, чего там в этом T было.
Правда, иногда и в stl попадаются очевидные фейлы. Один equal чего стоит.
http://llvm.org/docs/HowToSetUpLLVMStyleRTTI.html
www.rsdn.ru/article/pda/symbian.xml
boost::ublas::matrix
http://www.boost.org/doc/libs/1_55_0/libs/log/doc/html/index.html
алсо они тупо новую версию уже на 2 месяца задерживают
шаблоны допишешь сам