C++ Multimap容器应用示例:员工信息管理
C++ Multimap容器应用示例:员工信息管理
本示例演示了C++中使用multimap容器存储员工信息,并利用pair对组和迭代器进行操作。
#include <string>
#include <iostream>
#include <map>
using namespace std;
class Employee
{
private:
string m_name;
int m_id;
public:
Employee(string n, int id)
{
m_name = n;
m_id = id;
}
void print()
{
cout << m_name << " " << m_id << endl;
}
};
Employee s1('aa', 10), s2('bb', 11), s3('cc', 12);
Employee s4('dd', 13), s5('ee', 14), s6('ff', 15), s7('gg', 16);
void main()
{
multimap<string, Employee> m; //使用pair(对组),pair<T1,T2>存放的两个值的类型
m.insert(pair<string, Employee>('sale', s1)); //插入员工信息第一种方式
m.insert(pair<string, Employee>('sale', s2));
m.insert(make_pair('develop', s3)); //插入员工信息第二种方式
m.insert(make_pair('develop', s4));
m.insert(make_pair('develop', s5));
m.insert(multimap<string, Employee>::value_type('finacial', s6)); //插入员工信息第三种方式
m.insert(multimap<string, Employee>::value_type('finacial', s7)); //注意:三种方式都可以
int num = m.count('develop'); //统计'develop'员工人数
cout << 'develop :' << num << endl;
multimap<string, Employee>::iterator it = m.find('develop');
for (int i = 0; i < num; i++)
{
it->second.print();//pair.first是pair里面的第一个值,pair.second是pair里面的第二个值
it++; //输出'develop'员工信息
}
}
该C++程序运用了哪些知识点,编程时要注意什么内容:
- 该C++程序运用了STL中的multimap容器,以及pair对组和迭代器的使用。
- 编程时需要注意使用正确的插入方式,以及对迭代器的正确使用。
- 同时,需要了解multimap容器的特点,即同一个键可以对应多个值,因此需要在统计和输出时进行相应的处理。
代码解释:
- 类定义: 首先定义了
Employee类,包含姓名和ID信息,并提供print()方法用于输出员工信息。 - 多重映射容器: 使用
multimap<string, Employee>容器来存储员工信息,其中string代表部门名称,Employee代表员工对象。 - 插入员工信息: 代码展示了三种插入员工信息的方式:
- 使用
pair<string, Employee>构造函数 - 使用
make_pair()函数 - 使用
multimap<string, Employee>::value_type()类型
- 使用
- 统计和输出: 使用
m.count('develop')统计'develop'部门的员工人数,然后使用迭代器遍历该部门的员工信息并输出。
总结:
本示例展示了C++中使用multimap容器进行数据存储和操作的基本方法,并体现了pair对组和迭代器在实际编程中的应用。在使用multimap容器时,需要注意其特点,例如同一个键可以对应多个值,并根据实际需求选择合适的插入方式和遍历方法。
原文地址: https://www.cveoy.top/t/topic/ok51 著作权归作者所有。请勿转载和采集!