【问题标题】:User-defined functions vs. Built-in / Pre-defined functions用户定义函数与内置/预定义函数
【发布时间】:2013-06-14 03:18:38
【问题描述】:

哪个更可取?两者之间?例如在对数组进行排序时,使用预定义的排序函数会比创建自己的排序函数更实用吗?


使用预定义函数和用户自定义函数的优缺点是什么?

【问题讨论】:

  • 是否可以使用预定义的函数而不知道它是如何完成的?
  • 如果你必须快速编码并且error proof 答案可能是肯定的,但大多数时候答案是否定的。请参阅下面的答案。
  • 我知道,我只是在同一个句子中使用了 3 次 answer 这个词。这可能是分解的。这里需要以某种方式进行优化。可能是一个内置函数可以做到,但它会给我一个最好甚至可以理解的结果吗?

标签: function methods user-defined-functions built-in


【解决方案1】:

通常情况下,预定义函数会更好,如果它们存在的话。无论输入是什么,它们通常都经过优化以在最短的时间内运行(它们根据输入类型和大小进行优化)。实际上,您应该用户定义某些内容的唯一原因是,如果预定义代码的功能不满足您的某些特定要求。例如,可能有一个预定义的搜索函数并返回一个布尔值,但您需要知道找到的项目的索引。

长话短说:如果已定义,通常最好使用预定义

【讨论】:

    【解决方案2】:

    仅当预定义函数出于“非常好的”原因而无法满足您的需求时,才使用用户定义函数。重新发明轮子永远不好

    【讨论】:

    • 是否可以使用预定义的函数而不知道它是如何完成的?
    【解决方案3】:

    勤奋的程序员总是试图了解内置函数是如何实现的。因为他每次都必须在多种解决方案中进行选择,并且必须做出适合他需求的最佳选择。此外,要知道编写自己的功能与现有功能相比是否相关。

    大多数时候,内置函数都经过优化,但有时您需要更准确或更快的实现,并且必须制作自己的版本。

    示例:如果您需要计算两个整数 std::set 之间的交集 (C++ STL),那么在大型集合上的性能会很差。如果快速计算是您的首要任务,那么最好编写您自己的集合表示。 Here 是我不得不做这种事情的一个示例。

    注意:正如TGH所说,它是Never good to reinvent the wheel。因此,在实现您自己的功能之前,您还应该尝试找出一个尚未编写的定性第三方库(当然要注意许可证要求)。这样你可以直接使用它,或者从中获得一些灵感。

    【讨论】:

      【解决方案4】:

      内置函数是一个预定义的函数或语句或运算符,它与编译器使用的 i c 程序一起提供。 虽然用户定义函数是一个自包含的语句构建块,由用户编写用于计算值或编写任务,但它们可以根据被调用函数的要求由主函数调用。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-31
        • 1970-01-01
        • 1970-01-01
        • 2017-08-04
        • 1970-01-01
        相关资源
        最近更新 更多