《C++ Primer》中文第5版,P93中的一个使用vector的例子。
假设有一组成绩,其取值从0到100,要求以10分为一个段,统计每段的成绩数量。
可分为0-9,10-19,... ,90-99,100共11个段。
#include <iostream>
#include <vector>
using std::cout;
using std::endl;
using std::vector;
int main()
{
vector<unsigned> scores{42,65,95,100,39,67,
95,76,88,76,83,92,76,93}; // 将要进行分类的成绩
vector<unsigned> grades(11,0); // 每10分一个类,0-9,10-19,...90-99,100共11类。
for (auto score : scores)
{
if (score <= 100)
++grades[score/10];
}
for (auto grade : grades)
cout << grade << ' ';
cout << endl;
return 0;
}
输出:
0 0 0 1 1 0 2 3 2 4 1
没有30分以下的,30分到39分的1个,40分到49分的1个,没有50分到59分的,60分到69分的2个,70分到79分的3个,80分到89分的2个,90分到99分的4个,100分的1个。