繁体   English   中英

c ++ boost库中累加器有什么用?

[英]What is the use of accumulator in c++ boost library?

我刚刚阅读了c ++中Boost库的指南。 而且我不了解累加器的一部分。

在指南中,它说每个累加器都可以拥有其功能,例如tag :: min或tag :: mean。 如果您拥有这些功能,则可以使用min函数(宏)。

那么为什么我不能只在STL中使用向量并使用min_element(v.begin(),v.end())之类的算法呢? 使用累加器有什么好处?

该指南还写了“累加器复杂度O(1)提取器复杂度O(1)”一词。 这意味着什么? 它与时间复杂度有关吗? 这是蓄能器的优势吗?

如果使用向量,则必须存储每个单个值。 这会占用内存,但是对于累加器要执行的任务,实际上并不需要存储这些值-对于某些计算,只需要在给出新值时更新少量状态即可。

您可以编写一种节省空间的算法来执行计算而无需存储所有内容,或者可以使用为您完成工作的累加器。

此外,累加器库提供了一些标准库所没有的统计工具。

而且,是的, O(1)表示“恒定时间复杂度”,这告诉我们此方法的另一个重要好处-随着数量的增加,其性能不会变差。

这是更深入的解释

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM