簡體   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