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容器的特点,即同一个键可以对应多个值,因此需要在统计和输出时进行相应的处理。

代码解释:

  1. 类定义: 首先定义了Employee类,包含姓名和ID信息,并提供print()方法用于输出员工信息。
  2. 多重映射容器: 使用multimap<string, Employee>容器来存储员工信息,其中string代表部门名称,Employee代表员工对象。
  3. 插入员工信息: 代码展示了三种插入员工信息的方式:
    • 使用pair<string, Employee>构造函数
    • 使用make_pair()函数
    • 使用multimap<string, Employee>::value_type()类型
  4. 统计和输出: 使用m.count('develop')统计'develop'部门的员工人数,然后使用迭代器遍历该部门的员工信息并输出。

总结:

本示例展示了C++中使用multimap容器进行数据存储和操作的基本方法,并体现了pair对组和迭代器在实际编程中的应用。在使用multimap容器时,需要注意其特点,例如同一个键可以对应多个值,并根据实际需求选择合适的插入方式和遍历方法。

C++ Multimap容器应用示例:员工信息管理

原文地址: https://www.cveoy.top/t/topic/ok51 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录