
那本书上确实有这样的语句,但我觉得是编写错误的。
iterator所支持的-= *** 作应该是ite2 -= n这里n是一个常量。
看看源码中的原型:
__normal_iterator&
operator-=(const difference_type&__n)
{ _M_current -= __nreturn *this}
可以看到形参是一个difference_type类型的变量,而没有迭代器类型形参。
所以要么是编写错误,要么新的STL支持这种 *** 作。但我觉得后面一种可能性不大。
因为ite2-ite1得到一个常量,再赋值给ite2是不合常理的。
main(){double x1,x2
x1=0.0
x2=cos(x1)
while(fabs(x2-x1)>le-6)//当误差大于10的负六次方循环。
{x1=x2
x2=cos(x1)
}
printf("x=%f\n",x2)
}
牛顿迭代法,是用于求方程或方程组近似根的一种常用的算法设计方法。设方程为f(x)=0,用某种数学方法导出等价的形式 x(n+1) = g(x(n)) = x(n)–f(x(n))/f‘(x(n)).然后按以下步骤执行:
(1) 选一个方程的近似根,赋给变量x1
(2) 将x0的值保存于变量x1,然后计算g(x1),并将结果存于变量x0
(3) 当x0与x1的差的绝对值还小于指定的精度要求时,重复步骤(2)的计算。
若方程有根,并且用上述方法计算出来的近似根序列收敛,则按上述方法求得的x0就
认为是方程的根。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)