簡體   English   中英

使用空的 Boost 累加器

[英]Using empty Boost accumulators

我很好奇,從這段代碼片段中獲得的平均值是多少? 蓄能器是空的。

boost::accumulators::accumulator_set<
    int,
    boost::accumulators::features<boost::accumulators::tag::mean>
> Accumulator;

int Mean = boost::accumulators::mean(Accumulator);

當我測試時,平均值不為零。 有什么方法可以告訴我對空數據集取平均值嗎? 為什么“均值”的結果值非零?

我正在查看累加器庫的文檔,但無法找到這個問題的答案。

任何值都是空值集的有效平均值。 x * 0 = 0對任何x

您可以向accumulator_set添加count功能並查詢它以查看其是否為 0。

您不需要添加計數功能,因為均值累加器基於計數總和累加器

來自boost 用戶指南

均值取決於總和和計數累加器...均值累加器的結果僅僅是求和累加器的結果除以計數累加器的結果。

所以你只需要驗證計數大於 0:

bool isEmpty = boost::accumulators::count(Accumulator) == 0;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM