First of ALL
- Оба на 100% одинаковы, то же самое значение То же работает
- Разработчик только что использовал 2 If Statements (первое, чтобы показать сообщение, что оно не найдено ) и 2-го, чтобы вернуться назад, хотя он может сделать оба в 1 Если и так, может быть, он просто хотел показать, что он знает оба подхода, поэтому он сделал это таким образом, иначе нет разницы в обоих и что, возможно, потребовалось еще один большой O раз. -Для более ясного просмотра вы можете посетить эту ссылку ( разница между p == NULL и! P в c ++ )
ПОДРОБНЫЙ ОТВЕТ НИЖЕ:
! p и p == nullptr оба имеют одинаковую рабочую силу. Код в вашем случае показывает, что если (! p) и if (p == nullptr) оба используются только для того, чтобы показать, что разработчик знает оба подхода и он старший Разработчик знаком с более старыми версиями C ++. Потому что, если он использует
if(!p){throw out_of_range("The key you're looking for can't be found\n");
return;
}
or Uses
if(p==nullptr)
{throw out_of_range("The key you're looking for can't be found\n");
return;}
Но в Вашем случае разработчик Only Thing показал ему сообщение, что Node не найден в первом IF, и вернул функцию во втором If.No что бы он ни думал или не намеревался делать, но оба они одинаковы, и он просто использует другой ЕСЛИ, который вообще не нужен
Если вам по-прежнему требуется дополнительная помощь о подробных различиях между обоими, вы можете проверить в разница между p == NULL и! p в c ++