gpt4 book ai didi

数组中值的 C++ 实例? (直方图)

转载 作者:行者123 更新时间:2023-11-28 06:54:03 25 4
gpt4 key购买 nike

我想知道是否可以在 C++ 中解析数组并检索整数在数组中出现的次数。我正在尝试制作值的直方图,但目前对如何继续感到困惑。

如果重要的话,它是一个一维数组,我正在使用这个函数来打印数组:

void print(int a[], int n)
{
int j = 1;

cout << endl;

for(int i=0; i < n; i++)
{
if(!(j%6))
{
j=1; cout << endl << endl;
}
cout << right << setw(2) << a[i] << " ";
++j;

}
}

在这张截图中给出了正确的输出:

http://i.imgur.com/P8Jzj1V.png

但是,一旦我转到我的直方图函数(我知道它编码不正确),我就会得到以下输出:

http://i.imgur.com/WJtBjoF.png

因为我当前的代码是根据从数组中获取的值打印星号:

for (int i = 0; i < size; i++)
{
cout << a[i] << ":" << bar(a[i-1]);
cout << endl;
}

附言- “bar”函数只根据给定的数字返回一个带有指定数量的“*”的字符串。

我知道最后一点不正确,但这就是我要解决的问题。

最佳答案

有两种简单的方法:

  1. 排序+计数
    1. 对数组进行排序
    2. 遍历所有元素,并在遇到不同元素/结尾时打印摘要。
  2. unordered_map
    1. 创建 std::unordered_map<int,int>
    2. 遍历数组,在遇到每个遇到的元素时增加计数。
    3. 打印摘要。

大小为 2 的数组** sizeof(int)*CHAR_BIT大得令人望而却步。

关于数组中值的 C++ 实例? (直方图),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23399839/

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