0
点赞
收藏
分享

微信扫一扫

【虎年大吉】Triumph Day13——C++ STL容器案例、随机数、<algorithm>头文件下常用的函数

醉倾城1 2022-02-01 阅读 32

目录

1、STL容器案例-评分打分

2、关于随机数

3、头文件下常用的函数:

4、STL容器案例-员工分组


*

1、STL容器案例-评分打分

案例描述

有5名选手:选手ABCDE,10个评委分别对每一名选手打分,去除最高分,去除评委中最低分,取平均分。

实现步骤

  1. 创建五名选手,放到vector中

  2. 遍历vector容器,取出来每一个选手,执行for循环,可以把10个评分打分存到deque容器中

  3. sort算法对deque容器中分数排序,去除最高和最低分

  4. deque容器遍历一遍,累加总分

  5. 获取平均分


2、关于随机数

综上所述:

        通过time函数作为参数传入srand函数,进而设置rand函数的种子,再使用rand函数根据srand函数设置的种子产生随机序列,就可以到我们想要的随机数

        srand(time(NULL));

        int num = rand()%41+60;//60~100

srand((unsigned int)time(NULL));

for (int i = 0; i < 10; i++)
{
    int score = rand() % 41 + 60;  // 60 ~ 100

    cout << score << endl;
}

注意:

        rand()%41代表的意思是生成0~41之间的数字,左闭右开;

        加上60后,生成的随机数就是60~100;

        需要注意的是,srand(time(NULL));只需要执行一次即可。如果每次使用rand()前都执行一遍,就会产生相同的随机数,这是因为time()是以秒为单位的,在同一秒内返回的值都是相同的,种子是相同的,产生的随机序列自然也相同。每次都从同一个序列的开头取数,可不就一样了嘛。


3、<algorithm>头文件下常用的函数:


4、STL容器案例-员工分组

案例描述

  • 公司今天招聘了10个员工(ABCDEFGHIJ),10名员工进入公司之后,需要指派员工在那个部门工作

  • 员工信息有: 姓名 工资组成;部门分为:策划、美术、研发

  • 随机给10名员工分配部门和工资

  • 通过multimap进行信息的插入 key(部门编号) value(员工)

  • 分部门显示员工信息

实现步骤

  1. 创建10名员工,放到vector中

  2. 遍历vector容器,取出每个员工,进行随机分组

  3. 分组后,将员工部门编号作为key,具体员工作为value,放入到multimap容器中

  4. 分部门显示员工信息


待更。。。

举报

相关推荐

0 条评论