阅读(1351) (0)

C++ 直方图

2016-02-24 15:08:08 更新

从之前的数据表取出并存储,在使用时可以直接调用,这个方法通常很有用,也比直接将数值打印出来要好。我们需要一个将十个整型数存储起来的方法。当然,我们可以定义十个整型变量,分别取名为howManyones,howManytows等,但是那样的话工作太过繁杂。而且当我们需要改变统计的数值个数时将很会麻烦。

因此,最好是使用一个长度为10的整型指针。这样的话,我们就可以一次完成十个整数值存储点的设置,并且可以使用数组索引到每个数值。程序如下:

int numValues = 100000;
int upperBound = 10;
apvector<int> vector = randomVector (numValues, upperBound);
apvector<int> histogram (upperBound);

for (int i = 0; i<upperBound; i++) {
    int count = howMany (vector, i);
    histogram[i] = count;
}

我把这个程序称作直方图,因为这是一个统计学上的名词,专门为向量中统计不同数值出现的次数而设计的。

这里一个很巧妙的地方是,循环变量在函数中得到了两次不同功能的使用。首先,它是howMany函数的参数,这正是我们想要统计的值。其次,它是向量统计图的索引值,将每个统计值存入对应存储点中。