Код: Выделить всё
void func1(const std::map& mp) {
auto it = std::find_if(mp.begin(), mp.end(), [](const auto& it){
return (it.second == 2);
});
std::cout first);
}
void func2(const std::map& mp) {
for (auto it = mp.begin(); it != mp.end(); ++it) {
if (it->second == 2) {
std::cout first);
break;
}
}
}
int main() {
std::map mp {{1, 2}, {3, 4}};
func1(mp);
func2(mp);
return 0;
}
Я видел много кодов типа func1() после C++11, но, с моей точки зрения, std::find_if() использует лямбда-выражение, поэтому производительность может быть хуже.
Прав ли я в этом отношении? Когда мне следует использовать одно вместо другого?
Я пытался спросить у Google, но не нашел ничего, что могло бы меня убедить.
Подробнее здесь: https://stackoverflow.com/questions/793 ... -is-better
Мобильная версия