C++ 标准模板库(STL)编程示例 - multimap
来源:互联网 发布:linux 网络唤醒 编辑:程序博客网 时间:2024/05/16 03:17
/**//*
* Copyright (c) 2006 All rights reserved.
* 文件名:MultiMap.cpp
*
* 文件标识:MultiMap
* 摘要:多重映射容器编程示例
* 输入:无
* 输出:输出在程序中插入多重映射容器的信息
*
* 当前版本 0.01
* 作者:罗
* 完成日期:2006年4月3日
*/
#include <iostream>
#include <string>
#include <map>
using namespace std;
typedef struct employee
...{
//Member Function
public:
employee(long eID, string e_Name, float e_Salary);
//Attribute
public:
long ID; //Employee ID
string name; //Employee Name
float salary; //Employee Salary
}employee;
//创建multimap的实例,整数(职位编号)映射员工信息
typedef multimap<int, employee> EMPLOYEE_MULTIMAP;
typedef multimap<int, employee>::iterator EMPLOYEE_IT; //随机访问迭代器类型
typedef multimap<int, employee>::reverse_iterator EMPLOYEE_RIT; //反向迭代器类型
employee::employee(long eID, string e_Name, float e_Salary)
: ID(eID), name(e_Name), salary(e_Salary) ...{}
//函数名:output_multimap
//函数功能:正向输出多重映射容器里面的信息
//参数:一个多重映射容器对象
void output_multimap(EMPLOYEE_MULTIMAP employ)
...{
EMPLOYEE_IT employit;
for (employit = employ.begin(); employit != employ.end(); employit++)
...{
cout << (*employit).first << ' ' << (*employit).second.ID
<< ' ' << (*employit).second.name << ' ' << (*employit).second.salary
<< ' ' << endl;
}
}
//函数名:reverse_output_multimap
//函数功能:逆向输出多重映射容器里面的信息
//参数:一个多重映射容器对象
void reverse_output_multimap(EMPLOYEE_MULTIMAP employ)
...{
EMPLOYEE_RIT employit;
for (employit = employ.rbegin(); employit != employ.rend(); employit++)
...{
cout << (*employit).first << ' ' << (*employit).second.ID
<< ' ' << (*employit).second.name << ' ' << (*employit).second.salary
<< ' ' << endl;
}
}
int main(int argc, char *argv[])
...{
EMPLOYEE_MULTIMAP employees; //多重映射容器实例
//下面四个语句分别构造一个员工对象插入到多重映射容器
//注意因为是多重映射,所以可以出现重复的键,例如下面的信息有两个职位编号为118的员工
employees.insert(EMPLOYEE_MULTIMAP::value_type(118, employee(100, "luojiafeng", 8000)));
employees.insert(EMPLOYEE_MULTIMAP::value_type(112, employee(101, "luojiahui", 6000)));
employees.insert(EMPLOYEE_MULTIMAP::value_type(113, employee(102, "luokaifeng", 10000)));
employees.insert(EMPLOYEE_MULTIMAP::value_type(118, employee(103, "xujinghua", 20000)));
//正序输出多重映射容器中的信息
cout << "职位编号" << "员工ID" << ' '
<< "姓名" << ' ' << ' ' << "工资" << endl;
output_multimap(employees);
//逆序输出多重映射容器中的信息
cout << "职位编号" << "员工ID" << ' '
<< "姓名" << ' ' << ' ' << "工资" << endl;
reverse_output_multimap(employees);
//输出容器内的记录条数
cout<< "共有" << employees.size() << "条员工记录" << endl;
return 0;
}
* Copyright (c) 2006 All rights reserved.
* 文件名:MultiMap.cpp
*
* 文件标识:MultiMap
* 摘要:多重映射容器编程示例
* 输入:无
* 输出:输出在程序中插入多重映射容器的信息
*
* 当前版本 0.01
* 作者:罗
* 完成日期:2006年4月3日
*/
#include <iostream>
#include <string>
#include <map>
using namespace std;
typedef struct employee
...{
//Member Function
public:
employee(long eID, string e_Name, float e_Salary);
//Attribute
public:
long ID; //Employee ID
string name; //Employee Name
float salary; //Employee Salary
}employee;
//创建multimap的实例,整数(职位编号)映射员工信息
typedef multimap<int, employee> EMPLOYEE_MULTIMAP;
typedef multimap<int, employee>::iterator EMPLOYEE_IT; //随机访问迭代器类型
typedef multimap<int, employee>::reverse_iterator EMPLOYEE_RIT; //反向迭代器类型
employee::employee(long eID, string e_Name, float e_Salary)
: ID(eID), name(e_Name), salary(e_Salary) ...{}
//函数名:output_multimap
//函数功能:正向输出多重映射容器里面的信息
//参数:一个多重映射容器对象
void output_multimap(EMPLOYEE_MULTIMAP employ)
...{
EMPLOYEE_IT employit;
for (employit = employ.begin(); employit != employ.end(); employit++)
...{
cout << (*employit).first << ' ' << (*employit).second.ID
<< ' ' << (*employit).second.name << ' ' << (*employit).second.salary
<< ' ' << endl;
}
}
//函数名:reverse_output_multimap
//函数功能:逆向输出多重映射容器里面的信息
//参数:一个多重映射容器对象
void reverse_output_multimap(EMPLOYEE_MULTIMAP employ)
...{
EMPLOYEE_RIT employit;
for (employit = employ.rbegin(); employit != employ.rend(); employit++)
...{
cout << (*employit).first << ' ' << (*employit).second.ID
<< ' ' << (*employit).second.name << ' ' << (*employit).second.salary
<< ' ' << endl;
}
}
int main(int argc, char *argv[])
...{
EMPLOYEE_MULTIMAP employees; //多重映射容器实例
//下面四个语句分别构造一个员工对象插入到多重映射容器
//注意因为是多重映射,所以可以出现重复的键,例如下面的信息有两个职位编号为118的员工
employees.insert(EMPLOYEE_MULTIMAP::value_type(118, employee(100, "luojiafeng", 8000)));
employees.insert(EMPLOYEE_MULTIMAP::value_type(112, employee(101, "luojiahui", 6000)));
employees.insert(EMPLOYEE_MULTIMAP::value_type(113, employee(102, "luokaifeng", 10000)));
employees.insert(EMPLOYEE_MULTIMAP::value_type(118, employee(103, "xujinghua", 20000)));
//正序输出多重映射容器中的信息
cout << "职位编号" << "员工ID" << ' '
<< "姓名" << ' ' << ' ' << "工资" << endl;
output_multimap(employees);
//逆序输出多重映射容器中的信息
cout << "职位编号" << "员工ID" << ' '
<< "姓名" << ' ' << ' ' << "工资" << endl;
reverse_output_multimap(employees);
//输出容器内的记录条数
cout<< "共有" << employees.size() << "条员工记录" << endl;
return 0;
}
- C++ 标准模板库(STL)编程示例 - multimap
- 标准模板库(STL)学习探究之Multimap容器
- 标准模板库(STL)学习探究之Multimap容器
- 标准模板库(STL)学习探究之Multimap容器
- 标准模板库(STL)学习探究之Multimap容器
- 标准模板库(STL)学习探究之Multimap容器
- C++ 标准模板库STL multimap 使用方法与应用介绍
- C++ 标准模板库STL multimap 使用方法与应用介绍(一)
- STL标准模板库编程--(二)
- C++:STL(标准模板库)
- C++:标准模板库(STL)
- C++STL标准模板库
- STL 标准模板库 vector queue list map multimap的使用基础
- STL标准模板库编程---容器(一)
- STL(标准模板库)
- Stl(标准模板库)
- 标准模板库(STL)
- 【C/C++学院】(12)C++标准模板库STL
- 尝试网站重构
- 工厂方法模式(Factory Method)
- 使用Asp.net 2.0设计的三种控件(TreeView,DropDownList,GridView)的无限分类
- CSS 对文章打印的控制
- 使用 库创建重复键关联容器
- C++ 标准模板库(STL)编程示例 - multimap
- Yale CAS SSO + Alfresco 2.9.0b + Tomcat 5.5 的整合步骤
- SQL注入专题
- 数据库只读的解决办法
- 使用multimap
- 硬件文章
- intel和amd的发展历史
- SQL文的管理和解析(二)PrepareSQL----SQL参数替换的简单语法及对应的数据结构
- .NET、ASP.NET控件及源码大汇总