map案例搭建

/*
multimap案例
公司今天招聘了5个员工, 5名员工进入公司之后,需要指派员工在那个部门工作。
人员信息有:姓名 年龄 电话 工资等组成
通过 multimap进行信息的插入 保存 显示
分部门显示员工信息 显示全部员工信息
*/


/*
map查找函数
count(keyElem)返回容器中key为keyElem的对组个数,对map来说,要么是0,要么是1,对multimap来说,值可能大于1
*/


# include <iostream>
# include <vector>
# include <string>
# include <map>
# include <list>
# include <deque>
# include <set>
# include <queue>
# include <stack>
# include <string>
# include <cstdlib>


using namespace std;


# define FINACIAL_DEPATMENT 0 //财务部门
# define SALE_DEPATMENT 1 //销售部门
# define DEVELOP_DEPATMENT 2 //研发部门
# define ALL_DEPATMENT 4 //所有部门


class Worker
{
public:
string mname;
string mTele;//电话
int mAge;
int mSalary;
};


//创建员工
void CreateWorker(vector<Worker> &vWorker)
{
string seedName = "ABCDE";
for(int i = 0; i < 5; i++)
{
Worker worker;
worker.mname = "员工";
worker.mname += seedName[i];


worker.mAge = rand() % 10 + 20;
worker.mTele = "010-8888888";
worker.mSalary = rand() % 10000 + 10000; 


//保存员工信息
vWorker.push_back(worker);
}
}
//员工分组
void WorkerByGorup(vector<Worker> &vWorker, multimap<int, Worker> &WorkerGroup)
{
//把员工随机分配不同部门
for(vector<Worker>::iterator it = vWorker.begin(); it != vWorker.end(); it++)
{
int departID = rand() % 3;
switch(departID)
{
//财务部门
case FINACIAL_DEPATMENT:
WorkerGroup.insert(make_pair(FINACIAL_DEPATMENT, *it));
break;
//销售部门
case SALE_DEPATMENT:
WorkerGroup.insert(make_pair(SALE_DEPATMENT, *it));
break;
//研发部门
case DEVELOP_DEPATMENT:
WorkerGroup.insert(make_pair(DEVELOP_DEPATMENT, *it));
break;
}
}
}
void ShowGroupWorkers(multimap<int, Worker>& WorkerGroup, int departID)
{
//打印销售部员工的信息
multimap<int, Worker>::iterator it = WorkerGroup.find(departID);
//找当前部门总人数
int DepatrCount = WorkerGroup.count(departID);
int num = 0;
for(multimap<int, Worker>::iterator pos = it; it != WorkerGroup.end() && num < DepatrCount; pos++, num++)
{
cout << "姓名:" <<pos->second.mname << " 年龄:" << pos->second.mAge << " 电话" << pos->second.mSalary << endl;
}
}
//打印每一部门的员工信息
void PrintWorkerByGroup(multimap<int, Worker>  &WorkerGroup)
{
//显示销售部门
cout << "销售部门: " << endl;
ShowGroupWorkers(WorkerGroup, SALE_DEPATMENT);
//显示研发部门
cout << "研发部门: " << endl;
ShowGroupWorkers(WorkerGroup, DEVELOP_DEPATMENT);
//显示财务部门
cout << "财务部门: " << endl;
ShowGroupWorkers(WorkerGroup, FINACIAL_DEPATMENT);
}






int main(int argc, char *argv[])
{
//存放新员工的信息
vector<Worker> vWorker;
//multimap保存分组信息
multimap<int, Worker> WorkerGroup;
//创建员工
CreateWorker(vWorker);
//员工分组
WorkerByGorup(vWorker, WorkerGroup);
//打印每一部门的员工信息
PrintWorkerByGroup(WorkerGroup);


return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Hadoop是一个开源的分布式计算平台,用于存储和处理大规模数据集。它基于Google的MapReduce和Google文件系统(GFS)的概念,并提供了可靠性、可扩展性和容错性。 要搭建Hadoop平台并实现一个大数据案例分析,可以按照以下步骤进行: 1. 安装Hadoop:首先,需要在一组服务器上安装Hadoop。可以选择使用Apache Hadoop或者Cloudera、Hortonworks等提供的Hadoop发行版。安装过程中需要配置Hadoop的核心组件,如HDFS(Hadoop分布式文件系统)和YARN(资源管理器)。 2. 配置集群:在搭建Hadoop平台之前,需要确定集群的规模和配置。这包括确定主节点和从节点的数量,以及为每个节点分配适当的硬件资源。 3. 数据准备:在进行大数据案例分析之前,需要准备好要处理的数据。这可能涉及到数据的收集、清洗和转换等步骤。 4. 数据存储:将数据存储到Hadoop分布式文件系统(HDFS)中。HDFS将数据划分为多个块,并将这些块分布在集群中的不同节点上,以实现数据的高可靠性和高性能访问。 5. 数据处理:使用Hadoop的MapReduce编程模型进行数据处理。MapReduce将数据分成多个小任务,并在集群中的多个节点上并行处理这些任务。通过编写Map和Reduce函数,可以实现对数据的转换、过滤、聚合等操作。 6. 分析与可视化:根据具体的大数据案例需求,使用适当的工具和技术对数据进行分析和可视化。这可能涉及到使用Hive进行数据查询和分析,使用Pig进行数据转换和处理,或者使用Spark进行实时数据处理和机器学习等。 7. 结果展示:最后,将分析结果以可视化的方式展示出来,以便用户能够更好地理解和利用这些结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值