gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:17:02 28 4
gpt4 key购买 nike

我刚刚阅读了 c++ 中的 boost 库指南。而且我没看懂累加器的部分。

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

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

导游还写了字“累加器复杂度 O(1)提取器复杂度 O(1)”。这意味着什么?它与时间复杂度有关吗?这就是累加器的优势吗?

最佳答案

如果您使用 vector ,则必须存储每个值。这需要内存,但对于累加器的预期任务,实际上不需要存储这些值——对于某些计算,您只需要在给出新值时更新少量状态。

您可以只编写一个节省空间的算法来执行计算而无需所有这些存储,或者您可以使用已经为您完成这项工作的累加器。

此外,accumulators 库提供了一些标准库没有的统计工具。

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

Here's a more in-depth explanation .

关于c++ - c++ boost库中的累加器有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53913982/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com