2013-06-18 2 views
3

Что предпочтительнее? между двумя? например, в сортировке массивов, было бы более практичным использовать предопределенную функцию сортировки чем создание ваша собственная сортировка?Пользовательские функции против встроенных/предопределенных функций


В чем преимущества и недостатки использования предопределенной функции и пользовательской функции?

+0

это нормально использовать предварительно определенную функцию без каких-либо или малое представление о том, как это делается? –

+0

Если вам нужно быстро закодировать и «проверить ошибку», ответ может быть да, но в большинстве случаев ответ будет Нет. См. Мой ответ ниже. –

+0

Я знаю, я просто использовал 3 раза слово «ответ» в том же предложении. Вероятно, это может быть факторизовано. Здесь нужно было бы оптимизировать. Может быть, встроенная функция может это сделать, но даст ли он мне приятный или даже понятный результат? –

ответ

2

Как правило, заданные функции лучше, если они существуют. Они, как правило, оптимизированы для работы в течение наименьшего промежутка времени, независимо от того, какой вход (они оптимизируются на основе типа ввода и размера). Действительно, единственная причина, по которой вы должны определить что-то, - это если функциональность заранее определенного кода не соответствует определенному требованию, которое у вас есть. Например, может быть функция поиска, которая была предварительно определена и возвращает логическое значение, но вам нужно знать индекс найденного элемента.

Короче говоря: часто лучше использовать предопределенные, если определено.

1

Используйте только определенные пользователем функции, если предварительно определенная функция не соответствует вашей потребности в «очень хорошей» причине. Никогда не рекомендуется изобретать велосипед

+0

это нормально использовать предварительно определенную функцию, не имея ни малейшего представления о том, как это делается? –

1

Прилежный программист всегда пытается понять, как реализованы встроенные функции. По той причине, что он каждый раз выбирает среди множества решений и должен сделать лучший выбор, чтобы соответствовать его потребностям. Более того, чтобы знать, уместно ли кодирование его собственной функции или нет по сравнению с существующими.

Часто встроенные функции оптимизированы для лучшего, но иногда вам потребуется более точная или быстрая реализация, и вам придется выполнять свою собственную версию.

Пример: Если необходимо вычислить пересечение между двумя std::set целыми числами (C++ STL), вы получите очень низкую производительность на больших наборах. Если быстро вычислить ваш приоритет, напишите собственное представление набора. Here - пример, где мне приходилось делать такое.

Примечание: Как указано TGH, это Never good to reinvent the wheel. Поэтому перед тем, как внедрить свою собственную функцию, вы также должны попытаться выяснить, не была ли уже написана качественная библиотека сторонних разработчиков (независимо от требований к лицензии). Таким образом, вы можете использовать его напрямую или получить от него вдохновение.

0

Встроенная функция является предопределенной функцией или оператором или оператором, который поставляется вместе с программой, используемой программой i c. , в то время как пользовательская функция представляет собой автономные строительные блоки оператора, которые написаны пользователем для вычисления значения или для программирования задачи, они могут быть вызваны основной функцией в соответствии с требованием вызываемой функции.

Смежные вопросы