当我写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上导致溢出,那么在这两种情况下都会得到相同的结果。否则,应执行第二个