【发布时间】:2012-04-09 18:48:38
【问题描述】:
我想检查一个数组是否有特定范围的值。 即,取值范围为 0 --> 9,实际数组为 50 个元素。
我还想跟踪每个值有多少。 即,如果有 3 个零、8 个 1 和 5 个 2,那么我的最终向量应该是 3 8 5。
我能够用下面的代码解决它但是,我意识到我的范围值需要等于我的数组大小,否则它不会检查所有元素。
有没有更好的方法来做到这一点?
int main() {
int intensityRange = 10;
int cloudSize = 10;
int cloud [] = {0, 3, 3, 2, 1, 5, 2, 3, 5, 2};
vector <int> totalGreyValues;
int k = 0;
for (int i = 0; i < intensityRange; i++) {
for (int j = 0; j < cloudSize; j++) {
if (cloud[j] == i) {
k = k + 1;
cout << " " << k;
}
else
cout << " no match ";
}
totalGreyValues.push_back (k);
k = 0;
}
cout << endl << endl << totalGreyValues.size();
for (int h = 0; h < totalGreyValues.size(); h ++)
cout << " " << totalGreyValues[h];
// values --> 0 1 2 3 4 5 6 7 8 9
// answer --> 1 1 3 3 0 2 0 0 0 0
return 0;
}
【问题讨论】: