为什么Stroustrup在“The C ++ Programming Language 3rd Edition(online)”中定义了sqrt函数?

时间:2017-02-03 09:58:42

标签: c++

Bjarne Stroustrup,在他的书“The C ++ Programming Language”第2章第23页(pdf第34页)的第3版(online)中,在一个片段范例中,定义了函数let arr = [{ id: 1, name: "John" }, { id: 2, name: "Doe" }]; let item = arr.find((x) => x.id === 2); item = Object.assign({}, { id: 3, name: "Do" }); console.log(arr); // the array is not changed! let item2 = arr.find((x) => x.id === 2); Object.assign(item2, { id: 3, name: "Do" }); console.log(arr); // the array is changed!。为什么他不只是使用已经包含在标准库中的那个?

2 个答案:

答案 0 :(得分:7)

因为sqrt'好样式'程序功能的示例。它接受输入,处理它并返回结果。

这本书并不是说你应该自己编写,或者从书中复制定义(完全没有完全实现)。这本书也没有证明如何计算平方根。它描述了程序编程中函数的目的(或者我的解释)。

答案 1 :(得分:0)

如果您正在考虑编写自己的sqrt(),请查看一些源代码,例如我在Google上找到的第一个源代码:

https://opensource.apple.com/source/Libm/Libm-92/ppc.subproj/sqrt.c

ACCU的2016年10月Overload杂志有一篇文章' Eight Rooty Pieces'

https://accu.org/index.php/journals/2294

我发现bogosqrt()解决方案特别有趣。