C++中的累加(AcEngor),A.Enter(),0(或ActhEnter),A.Enter(),0LL有什么区别吗?

当我写long-long-sum=累加时(a.begin(),a.end(),0)或长和=累加(a.begin(),a.end(),0ll)两者都给出相同的结果,那么为什么使用0ll而不是仅使用0(其中a是std::vector<int>a(n)

我的完整代码在这里

当第二个代码被推断为“累积代码”时,该代码的初始值也将被推断为“累积代码”。然后在long sum=累加中(a.begin(),a.end(),0),返回的int将转换为long,并分配给sum

另一方面,累加(a.begin(),a.end(),0ll)long-long执行求和,并返回long-long

如果总和不会在int上导致溢出,那么在这两种情况下都会得到相同的结果。否则,应执行第二个

发表评论