This question is unlikely to help any future visitors; it is only relevant to a small geographic area, a specific moment in time, or an extraordinarily narrow situation that is not generally applicable to the worldwide audience of the internet. For help making this question more broadly applicable, visit the help center




已关闭8年。




我不确定有什么区别,但是这里有问题。

编写一个赋值语句,以1来更新名为numStudents的计数器变量。
可不可能是:




我的另一个问题是

编写一个赋值语句,以根据sales变量中的值更新名为total的累加器变量。
会一样吗:



最佳答案

您的问题没有一个单一,清晰,明确的答案。

可以说,计数器是一个变量,每次验证给定事件时都会增加(例如,在迭代数组时,每次遇到数字5时,您都可以将计数器增加1)。

这个概念可能是广义的,因为在每个步骤中都有计数器以2或3或任何您想要的值递增;但是,如果步骤并不总是相同,则计数器的语义通常会失去意义。最后,这取决于程序的逻辑:如果要跟踪旅馆中的单人间和双人间,则numGuests计数器可以根据12的步长递增,具体取决于您正在处理的房间。在给定的时刻,但是可以争论的是,这最终只是为了清楚或简洁起见,因为结果与将1递增两次是相同的!

相反,累加器是一个变量,例如,它存储数组元素的总和(即您没有固定的步长,但增量会根据遇到的元素而有所不同)。

可以将概念概括为项目列表,将给定函数f重复应用于累加器的实际值和列表的下一个项目,并将结果保存在累加器中。通过这种方式,我们获得了fold high-order function的语义(实际上它的另一个名称中的一个是累加的)。如果我们将分析限制在所谓的左折,则累加器会随时存储中间结果,该中间结果对您已经处理过的子集有效。

如果您有一个名为total的累加器,其起始值为0,并且该数组包含一年中12个月的销售额,则将此定义与+(加法)一起用作f,将使您进入第n步一年前n个月的销售额。

这样,您的示例就很好了,因为它们严格遵守了累加器和计数器的这些定义。

关于c++ - 计数器和累加器有什么区别? ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12983063/

10-15 14:04