gpt4 book ai didi

c++ - 使用标准库或 boost 库从一组数据计算直方图

转载 作者:行者123 更新时间:2023-11-28 04:44:52 26 4
gpt4 key购买 nike

我的问题很简单。我有一组具有随机值的 float 。我想找出数组中值出现的次数。

例如。

float data[] = {1.1,1.1,1.1,
2.1,2.1,2.1,
3.1,3.1,3.1,
4.1,4.1,4.1,
5.1,5.1,5.1,
1.5,1.5,1.5,
3.2,3.2,3.2};

标准库或 boost 库中是否有某种范围直方图函数可以返回值的出现次数。在上面的例子中,

0-1 -> 0 times
1-2 -> 6 times
2-3 -> 3 times
3-4 -> 6 times
4-5 -> 3 times

最佳答案

您正在寻找一个std::map 来满足您的需求:

std::vector<double> data = {1.1,1.1,1.1,
2.1,2.1,2.1,
3.1,3.1,3.1,
4.1,4.1,4.1,
5.1,5.1,5.1,
1.5,1.5,1.5,
3.2,3.2,3.2};

std::map<int,int> histogram;

for (const auto& e : data) ++histogram[e];

for (const auto& x : histogram) std::cout << x.first << " " << x.second <<"\n";

打印:

1 6
2 3
3 6
4 3
5 3

我允许自己使用 vector 而不是 c 数组。映射存储键值对,它的 operator[] 返回对给定键的值的引用(如果还没有,则默认构造它)。

关于c++ - 使用标准库或 boost 库从一组数据计算直方图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49458662/

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