image.png
image.png

1. String

image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png

2. vector

image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png

3. set

image.png
image.png
image.png
image.png
image.png

4. list

image.png
image.png
image.png
image.png
image.png
image.png
image.png
image.png

5. map

image.png
image.png

  1. //公司今天招聘了5个员工,5名员工进入公司之后,需要指派员工在那个部门工作
  2. //人员信息有: 姓名 年龄 电话 工资等组成
  3. //通过Multimap进行信息的插入 保存 显示
  4. //分部门显示员工信息 显示全部员工信息
  5. #define _CRT_SECURE_NO_WARNINGS
  6. #include<iostream>
  7. #include<map>
  8. #include<string>
  9. #include<vector>
  10. using namespace std;
  11. //multimap 案例
  12. //公司今天招聘了 5 个员工,5 名员工进入公司之后,需要指派员工在那个部门工作
  13. //人员信息有: 姓名 年龄 电话 工资等组成
  14. //通过 Multimap 进行信息的插入 保存 显示
  15. //分部门显示员工信息 显示全部员工信息
  16. #define SALE_DEPATMENT 1 //销售部门
  17. #define DEVELOP_DEPATMENT 2 //研发部门
  18. #define FINACIAL_DEPATMENT 3 //财务部门
  19. #define ALL_DEPATMENT 4 //所有部门
  20. //员工类
  21. class person{
  22. public:
  23. string name; //员工姓名
  24. int age; //员工年龄
  25. double salary; //员工工资
  26. string tele; //员工电话
  27. };
  28. //创建5个员工
  29. void CreatePerson(vector<person>& vlist){
  30. string seed = "ABCDE";
  31. for (int i = 0; i < 5; i++){
  32. person p;
  33. p.name = "员工";
  34. p.name += seed[i];
  35. p.age = rand() % 30 + 20;
  36. p.salary = rand() % 20000 + 10000;
  37. p.tele = "010-8888888";
  38. vlist.push_back(p);
  39. }
  40. }
  41. //5名员工分配到不同的部门
  42. void PersonByGroup(vector<person>& vlist, multimap<int, person>& plist){
  43. int operate = -1; //用户的操作
  44. for (vector<person>::iterator it = vlist.begin(); it != vlist.end(); it++){
  45. cout << "当前员工信息:" << endl;
  46. cout << "姓名:" << it->name << " 年龄:" << it->age << " 工资:" << it->salary << " 电话:" << it->tele << endl;
  47. cout << "请对该员工进行部门分配(1 销售部门, 2 研发部门, 3 财务部门):" << endl;
  48. scanf("%d", &operate);
  49. while (true){
  50. if (operate == SALE_DEPATMENT){ //将该员工加入到销售部门
  51. plist.insert(make_pair(SALE_DEPATMENT, *it));
  52. break;
  53. }
  54. else if (operate == DEVELOP_DEPATMENT){
  55. plist.insert(make_pair(DEVELOP_DEPATMENT, *it));
  56. break;
  57. }
  58. else if (operate == FINACIAL_DEPATMENT){
  59. plist.insert(make_pair(FINACIAL_DEPATMENT, *it));
  60. break;
  61. }
  62. else{
  63. cout << "您的输入有误,请重新输入(1 销售部门, 2 研发部门, 3 财务部门):" << endl;
  64. scanf("%d", &operate);
  65. }
  66. }
  67. }
  68. cout << "员工部门分配完毕!" << endl;
  69. cout << "***********************************************************" << endl;
  70. }
  71. //打印员工信息
  72. void printList(multimap<int, person>& plist, int myoperate){
  73. if (myoperate == ALL_DEPATMENT){
  74. for (multimap<int, person>::iterator it = plist.begin(); it != plist.end(); it++){
  75. cout << "姓名:" << it->second.name << " 年龄:" << it->second.age << " 工资:" << it->second.salary << " 电话:" << it->second.tele << endl;
  76. }
  77. return;
  78. }
  79. multimap<int, person>::iterator it = plist.find(myoperate);
  80. int depatCount = plist.count(myoperate);
  81. int num = 0;
  82. if (it != plist.end()){
  83. while (it != plist.end() && num < depatCount){
  84. cout << "姓名:" << it->second.name << " 年龄:" << it->second.age << " 工资:" << it->second.salary << " 电话:" << it->second.tele << endl;
  85. it++;
  86. num++;
  87. }
  88. }
  89. }
  90. //根据用户操作显示不同部门的人员列表
  91. void ShowPersonList(multimap<int, person>& plist, int myoperate){
  92. switch (myoperate)
  93. {
  94. case SALE_DEPATMENT:
  95. printList(plist, SALE_DEPATMENT);
  96. break;
  97. case DEVELOP_DEPATMENT:
  98. printList(plist, DEVELOP_DEPATMENT);
  99. break;
  100. case FINACIAL_DEPATMENT:
  101. printList(plist, FINACIAL_DEPATMENT);
  102. break;
  103. case ALL_DEPATMENT:
  104. printList(plist, ALL_DEPATMENT);
  105. break;
  106. }
  107. }
  108. //用户操作菜单
  109. void PersonMenue(multimap<int, person>& plist){
  110. int flag = -1;
  111. int isexit = 0;
  112. while (true){
  113. cout << "请输入您的操作((1 销售部门, 2 研发部门, 3 财务部门, 4 所有部门, 0退出):" << endl;
  114. scanf("%d", &flag);
  115. switch (flag)
  116. {
  117. case SALE_DEPATMENT:
  118. ShowPersonList(plist, SALE_DEPATMENT);
  119. break;
  120. case DEVELOP_DEPATMENT:
  121. ShowPersonList(plist, DEVELOP_DEPATMENT);
  122. break;
  123. case FINACIAL_DEPATMENT:
  124. ShowPersonList(plist, FINACIAL_DEPATMENT);
  125. break;
  126. case ALL_DEPATMENT:
  127. ShowPersonList(plist, ALL_DEPATMENT);
  128. break;
  129. case 0:
  130. isexit = 1;
  131. break;
  132. default:
  133. cout << "您的输入有误,请重新输入!" << endl;
  134. break;
  135. }
  136. if (isexit == 1){
  137. break;
  138. }
  139. }
  140. }
  141. int main(){
  142. vector<person> vlist; //创建的5个员工 未分组
  143. multimap<int, person> plist; //保存分组后员工信息
  144. //创建5个员工
  145. CreatePerson(vlist);
  146. //5名员工分配到不同的部门
  147. PersonByGroup(vlist, plist);
  148. //根据用户输入显示不同部门员工信息列表 或者 显示全部员工的信息列表
  149. PersonMenue(plist);
  150. system("pause");
  151. return EXIT_SUCCESS;
  152. }

image.png
image.png
image.png
image.png

6. deque

image.png
image.png
image.png
image.png

7. stack

image.png
image.png

8. queue

image.png
image.png