qt(语言c++)中怎样在未知数组元素的情况下统计数组中每个不同元素的数据有多少个
比如【1 1 2 3 4 5 5 6】,你不知道数组中的数据是这六种,怎样统计出1有2个,2346各有1个,5有2个,或者说这样能做到吗
还有就是怎样这样统计字符类数据
qt(语言c++)中怎样在未知数组元素的情况下统计数组中每个不同元素的数据有多少个
比如【1 1 2 3 4 5 5 6】,你不知道数组中的数据是这六种,怎样统计出1有2个,2346各有1个,5有2个,或者说这样能做到吗
还有就是怎样这样统计字符类数据
未知数组元素类型的情况下可以用模板,在Qt中,用QMap存储数据和数据出现的次数即可。
示例代码及运行结果如下(Qt下创建的控制台程序):
运行结果:
代码:
#include <QCoreApplication>
#include <QMap>
#include <QDebug>
template <typename T>
void Tongji (T a[],int n,QMap<T,int> &mout)
{
typename QMap<T,int>::iterator it;
int i=0,t;
for (;i<n;i++)
{
it = mout.find(a[i]);
if (it == mout.end())
{
mout.insert(a[i],1);
}else
{
t = it.value() +1;
mout.erase(it);
mout.insert(a[i],t);
}
}
}
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
int test[] ={1,1,2,3,4,5,6};
QMap<int,int> mm;
Tongji(test,7,mm);
QMap<int,int>::iterator it = mm.begin();
for (;it != mm.end();it++)
{
qDebug() << it.key() << " " << it.value() <<endl;
}
return a.exec();
}