C++中maps的用法

时间:2019-09-14
本文章向大家介绍C++中maps的用法,主要包括C++中maps的用法使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

map类型中的所有元素都是pair类型,pair类型顾明思议就是成对存在的类型。比如 pair < string, string > StudentTom ( " StudentID ", " StudentName "),定义了一个成对存在的一个Student,第一个值为学号,第二个值为学生姓名。第一个又被称键,第二个称为值,两个成对存在。并且这种定义不局限于string类,其他类型也可以。map类型就相当于有一系列pair类型的数据。

map类型的定义:map < string, string > StudentList;

初始化:             StudentList. insert ( map<string,string>::value_type("001","Brown"));

最常用操作函数:

begin()          返回指向map头部的迭代器
end()            返回指向map末尾的迭代器

下面是利用map类型完成学号绑定姓名,完成插入,查找,遍历,删除的程序

 1 /*利用map类型完成学号绑定姓名,完成插入,查找,遍历,删除*/
 2 #include<iostream>
 3 #include<string>
 4 #include<map>
 5 using namespace std;
 6 
 7 void map_insert(map<string, string>*mapStudent, string ID, string name)
 8 { 
 9     mapStudent->insert(map<string, string>::value_type(ID,name));
10 };
11 int main()
12 {
13     map<string, string>mapS;
14     //插入同学
15     map_insert(&mapS,"001","Brown");
16     map_insert(&mapS, "002", "Cony");
17     map_insert(&mapS, "003", "Tom");
18 
19     //查找同学
20     map<string, string>::iterator iter;
21     iter = mapS.find("003");
22     if (iter != mapS.end())
23     {
24         cout << "找到该同学";
25         cout << iter->second << endl << endl;
26     }
27     else
28     {
29         cout << "没找到该同学"<<endl;
30     }
31 
32     //查看所有同学(遍历)
33     for (iter = mapS.begin(); iter != mapS.end(); iter++)
34     {
35         cout  << endl<< iter->first << iter->second << endl;
36     }
37 
38     //删除某同学
39     iter = mapS.find("003");
40     if (iter != mapS.end())
41     {
42         cout <<endl<< "删除的同学为";
43         cout << iter->second << endl;
44         mapS.erase(iter);
45     }
46     else
47     {
48         cout << "没找到该同学";
49 
50     }
51     for (iter = mapS.begin(); iter != mapS.end(); iter++)
52     {
53         cout << iter->first << iter ->second<< endl;
54     }
55 
56     getchar();
57     return 0; 
58     
59         
60 }

原文地址:https://www.cnblogs.com/wuhongjian/p/11519980.html