使用 for 循环计算平方根
与 R 相同,C++ 的 for 循环会将同一段代码运行指定次数,并在每次迭代时只改变索引值。不过,for 循环的语法比 R 略复杂。
for(int i = 0, i < n, i++) {
// Do something
}
int i = 0声明索引为整数(最常见的情况),并在第一次迭代时将其设为0。i < n设置迭代条件:一旦i达到值n,该条件为假,循环将停止。i++表示在每次迭代时将i的值增加1。
这里,您将完成一个使用巴比伦方法计算平方根的函数定义。(在实际代码中,建议直接使用 sqrt(),它采用更快的现代算法。)

本练习是课程的一部分
用 Rcpp 优化 R 代码
练习说明
- 初始化一个局部
double变量 x 为 1。 - 指定一个
for循环。- 将整数
i初始化为0。 - 将迭代条件设置为
i小于n。 - 每一步将
i自增 1。
- 将整数
交互式实操练习
通过完成这段示例代码来试试这个练习。
#include
using namespace Rcpp;
// [[Rcpp::export]]
double sqrt_approx(double value, int n) {
// Initialize x to be one
double x = ___;
// Specify the for loop
___(int i = ___; ___; ___) {
x = (x + value / x) / 2.0;
}
return x;
}
/*** R
sqrt_approx(2, 10)
*/