最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C++?Boost?Accumulators累加器詳細(xì)講解

 更新時(shí)間:2022年11月28日 08:47:40   作者:無(wú)水先生  
Boost是為C++語(yǔ)言標(biāo)準(zhǔn)庫(kù)提供擴(kuò)展的一些C++程序庫(kù)的總稱。Boost庫(kù)是一個(gè)可移植、提供源代碼的C++庫(kù),作為標(biāo)準(zhǔn)庫(kù)的后備,是C++標(biāo)準(zhǔn)化進(jìn)程的開(kāi)發(fā)引擎之一,是為C++語(yǔ)言標(biāo)準(zhǔn)庫(kù)提供擴(kuò)展的一些C++程序庫(kù)的總稱

Boost.Accumulators 

        Boost.Accumulators 提供了處理樣本的類。例如,您可以找到最大或最小的樣本,或者計(jì)算所有樣本的總和。雖然標(biāo)準(zhǔn)庫(kù)支持其中一些操作,但 Boost.Accumulators 還支持統(tǒng)計(jì)計(jì)算,例如均值和標(biāo)準(zhǔn)差。

        該庫(kù)稱為 Boost.Accumulators,因?yàn)槔奂悠魇且粋€(gè)基本概念。累加器是一個(gè)容器,每次插入一個(gè)值時(shí)都會(huì)計(jì)算出一個(gè)新的結(jié)果。該值不一定存儲(chǔ)在累加器中。相反,累加器在輸入新值時(shí)不斷更新中間結(jié)果。

        Boost.Accumulators 包含三個(gè)部分:

  • 框架提供了庫(kù)的整體結(jié)構(gòu)。它提供類 boost::accumulators::accumulator_set,它總是與 Boost.Accumulators 一起使用。雖然您需要了解這個(gè)類和框架中的其他一些類,但細(xì)節(jié)并不重要,除非您想開(kāi)發(fā)自己的累加器。頭文件 boost/accumulators/accumulators.hpp 使您可以訪問(wèn) boost::accumulators::accumulator_set 和框架中的其他類。
  • Boost.Accumulators 提供了許多執(zhí)行計(jì)算的累加器。一旦包含 boost/accumulators/statistics.hpp,您就可以訪問(wèn)和使用所有這些累加器。
  • Boost.Accumulators 提供運(yùn)算符,例如,將一個(gè) std::complex 類型的復(fù)數(shù)與一個(gè) int 值相乘或?qū)蓚€(gè)向量相加。頭文件 boost/accumulators/numeric/functional.hpp 定義了 std::complex、std::valarray 和 std::vector 的運(yùn)算符。您不需要自己包含頭文件,因?yàn)樗诶奂悠鞯念^文件中。但是,您必須定義宏 BOOST_NUMERIC_FUNCTIONAL_STD_COMPLEX_SUPPORT、BOOST_NUMERIC_FUNCTIONAL_STD_VALARRAY_SUPPORT 和 BOOST_NUMERIC_FUNCTIONAL_STD_VECTOR_SUPPORT 以使運(yùn)算符可用。

        Boost.Accumulators 提供的所有類和函數(shù)都在 boost::accumulators 或嵌套命名空間中定義。例如,所有累加器都在 boost::accumulators::tag 中定義。

示例 58.1。使用 boost::accumulators::tag::count 計(jì)數(shù)

#include <boost/accumulators/accumulators.hpp>
#include <boost/accumulators/statistics.hpp>
#include <iostream>
using namespace boost::accumulators;
int main()
{
  accumulator_set<int, features<tag::count>> acc;
  acc(4);
  acc(-6);
  acc(9);
  std::cout << count(acc) << '\n';
}

Example 58.1 

        示例 58.1 使用 boost::accumulators::tag::count,這是一個(gè)簡(jiǎn)單的累加器,用于計(jì)算傳遞給它的值的數(shù)量。因此,由于傳遞了三個(gè)值,此示例將 3 寫(xiě)入標(biāo)準(zhǔn)輸出。要使用累加器,您需要訪問(wèn)類 boost::accumulators::accumulator_set,這是一個(gè)模板,它期望將要處理的值的類型作為其第一個(gè)參數(shù)。示例 58.1 將 int 作為第一個(gè)參數(shù)傳遞。

        第二個(gè)參數(shù)指定要使用的累加器。您可以使用多個(gè)累加器。類名 boost::accumulators::accumulator_set 表示可以管理任意數(shù)量的累加器。

        嚴(yán)格來(lái)說(shuō),您指定的是特征,而不是累加器。特征定義了應(yīng)該計(jì)算什么。你決定什么,而不是如何。功能可以有不同的實(shí)現(xiàn)。實(shí)現(xiàn)是累加器。

        示例 58.1 使用 boost::accumulators::tag::count 選擇一個(gè)計(jì)算值的累加器。如果存在多個(gè)可以計(jì)算值的累加器,Boost.Accumulators 會(huì)選擇默認(rèn)的累加器。

        請(qǐng)注意,您不能將特征直接傳遞給 boost::accumulators::accumulator_set。您需要使用 boost::accumulators::features。

        boost::accumulators::accumulator_set 類型的對(duì)象可以像函數(shù)一樣使用。可以通過(guò)調(diào)用 operator() 來(lái)傳遞值。它們會(huì)立即得到處理。傳遞的值必須與作為第一個(gè)模板參數(shù)傳遞給 boost::accumulators::accumulator_set 的類型相同。

        對(duì)于每個(gè)特征,都有一個(gè)同名的提取器。提取器接收累加器的當(dāng)前結(jié)果。示例 58.1 使用提取器 boost::accumulators::count()。傳遞的唯一參數(shù)是 acc。 boost::accumulators::count() 返回 3。

        示例 58.2。使用均值和方差

#include <boost/accumulators/accumulators.hpp>
#include <boost/accumulators/statistics.hpp>
#include <iostream>
using namespace boost::accumulators;
int main()
{
  accumulator_set<double, features<tag::mean, tag::variance>> acc;
  acc(8);
  acc(9);
  acc(10);
  acc(11);
  acc(12);
  std::cout << mean(acc) << '\n';
  std::cout << variance(acc) << '\n';
}

Example 58.2 

        示例 58.2 使用兩個(gè)特征 boost::accumulators::tag::mean 和 boost::accumulators::tag::variance 來(lái)計(jì)算五個(gè)值的均值和方差。該示例將 10 和 2 寫(xiě)入標(biāo)準(zhǔn)輸出。

        方差為 2,因?yàn)?Boost.Accumulators 為五個(gè)值中的每一個(gè)分配了 0.2 的權(quán)重。使用 boost::accumulators::tag::variance 選擇的累加器使用權(quán)重。如果未明確設(shè)置權(quán)重,則所有值都具有相同的權(quán)重。

        示例 58.3。計(jì)算加權(quán)方差

#include <boost/accumulators/accumulators.hpp>
#include <boost/accumulators/statistics.hpp>
#include <iostream>
using namespace boost::accumulators;
int main()
{
  accumulator_set<double, features<tag::mean, tag::variance>, int> acc;
  acc(8, weight = 1);
  acc(9, weight = 1);
  acc(10, weight = 4);
  acc(11, weight = 1);
  acc(12, weight = 1);
  std::cout << mean(acc) << '\n';
  std::cout << variance(acc) << '\n';
}

Example 58.3 

        示例 58.3 將 int 作為第三個(gè)模板參數(shù)傳遞給 boost::accumulators::accumulator_set。此參數(shù)指定權(quán)重的數(shù)據(jù)類型。在此示例中,權(quán)重分配給每個(gè)值。

        Boost.Accumulators 使用 Boost.Parameter 以名稱/值對(duì)的形式傳遞附加參數(shù),例如權(quán)重。權(quán)重的參數(shù)名稱是權(quán)重。您可以將參數(shù)視為變量并分配一個(gè)值。名稱/值對(duì)作為附加參數(shù)在每個(gè)值之后傳遞給累加器。

        在示例 58.3 中,值 10 的權(quán)重為 4,而所有其他值的權(quán)重為 1。均值仍然是 10,因?yàn)闄?quán)重對(duì)均值無(wú)關(guān)緊要。但是,方差現(xiàn)在是 1.25。與前面的示例相比,它有所減少,因?yàn)橹虚g值的權(quán)重高于其他值。

        Boost.Accumulators 提供了更多的累加器。它們的用法與本章介紹的累加器相同。該庫(kù)的文檔包含對(duì)所有可用累加器的概述。

到此這篇關(guān)于C++ Boost Accumulators累加器詳細(xì)講解的文章就介紹到這了,更多相關(guān)C++ Boost Accumulators內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • c語(yǔ)言中g(shù)etch,getche,getchar的區(qū)別

    c語(yǔ)言中g(shù)etch,getche,getchar的區(qū)別

    getche() 和getch()很相似,它也需要引入頭文件conio.h,那它們之間的區(qū)別又在哪里呢?不同之處就在于getch()無(wú)返回顯示,getche()有返回顯示
    2013-09-09
  • Pipes實(shí)現(xiàn)LeetCode(194.轉(zhuǎn)置文件)

    Pipes實(shí)現(xiàn)LeetCode(194.轉(zhuǎn)置文件)

    這篇文章主要介紹了Pipes實(shí)現(xiàn)LeetCode(194.轉(zhuǎn)置文件),本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-08-08
  • C語(yǔ)言超詳細(xì)講解指針的概念與使用

    C語(yǔ)言超詳細(xì)講解指針的概念與使用

    本文主要講解C語(yǔ)言中指針和字符串的關(guān)系以及指針和數(shù)組的關(guān)系,在看本文之前大家可以先看看博主之前的C語(yǔ)言基礎(chǔ)篇,先對(duì)C語(yǔ)言指針先有個(gè)基礎(chǔ)的了解,有助于對(duì)本文章有更深一步的了解
    2022-05-05
  • C++ 關(guān)于MFC多線程編程的注意事項(xiàng)

    C++ 關(guān)于MFC多線程編程的注意事項(xiàng)

    這篇文章主要介紹了C++ 關(guān)于MFC多線程編程的注意事項(xiàng)的相關(guān)資料,需要的朋友可以參考下
    2015-06-06
  • Qt?自定義屬性Q_PROPERTY不顯示float類型的解決

    Qt?自定義屬性Q_PROPERTY不顯示float類型的解決

    這篇文章主要介紹了Qt?自定義屬性Q_PROPERTY不顯示float類型的問(wèn)題及解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • C++虛函數(shù)注意事項(xiàng)

    C++虛函數(shù)注意事項(xiàng)

    這篇文章主要給大家分享了EC++虛函數(shù)注意事項(xiàng),
    2022-01-01
  • C++ 反射機(jī)制詳解及實(shí)例代碼

    C++ 反射機(jī)制詳解及實(shí)例代碼

    這篇文章主要介紹了C++ 反射機(jī)制詳解及實(shí)例代碼的相關(guān)資料,需要的朋友可以參考下
    2017-01-01
  • C++ 情懷游戲掃雷的實(shí)現(xiàn)流程詳解

    C++ 情懷游戲掃雷的實(shí)現(xiàn)流程詳解

    掃雷是電腦上很經(jīng)典很經(jīng)典的傳統(tǒng)老游戲,從小編第一次摸到計(jì)算機(jī)開(kāi)始就玩過(guò)掃雷,雖然當(dāng)時(shí)并不理解玩法原理,但終是第一次玩電腦游戲,下面來(lái)從掃雷的前世今生講起
    2021-11-11
  • 基于Windows API分解路徑問(wèn)題的詳解

    基于Windows API分解路徑問(wèn)題的詳解

    本篇文章是對(duì)Windows API分解路徑進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-05-05
  • C++趣味算法之偵探推理

    C++趣味算法之偵探推理

    本文詳細(xì)講解了C++趣味算法之偵探推理,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-12-12

最新評(píng)論

北京市| 北流市| 清徐县| 西华县| 湟中县| 页游| 舞钢市| 望城县| 郁南县| 工布江达县| 瑞昌市| 汝城县| 醴陵市| 诸城市| 嘉定区| 东光县| 正蓝旗| 图木舒克市| 罗甸县| 恩平市| 兴和县| 东乡族自治县| 巴彦县| 手游| 大埔县| 汤原县| 保亭| 福泉市| 磴口县| 大渡口区| 茌平县| 五寨县| 砚山县| 丰城市| 安西县| 成武县| 白朗县| 鸡东县| 合阳县| 南通市| 昭平县|