map是一类关联式容器,map也叫关联数组,我们提供一个键/值对来索引map,而值可以用作被存储和检索的数据。
一个学生有学号(即索引--键),姓名(存储的数据--值)。
map<int, string> Student;
Map的基本知识
映射(Map),又称为字典(Dictionary),是由关键字(Key)及其对应的元素值(Value)所组成的元素单元(Element)的表单式集合。
通常,对于Map而言,使用给定的Key,可以迅速地从单元集合中检索到相应的元素。因此,在需要对大量数据进行查找操作而查找的性能又占据重要地位的场合,Map无疑是一种较理想的容器。譬如,在MFC中,使用Map来实现HandleMaps(句柄映射),以及其他的一些内部数据结构。同时,MFC 也提供了公共Map类。使用公共Map类,MFC程序员可以轻易地高效地根据自身的需求实现程序中自定义的映射。
通常,当一个Map对象被删除时,或者,当其中的元素被移除时,关键字和元素值也将被完全删除。
从数据结构的角度分析,有关Map的典型操作有:
1、向Map中插入具有给定关键字的元素单元。
2、在Map中查找具有给定关键字的元素单元。
3、在Map中删除具有给定关键字的元素单元。
4、枚举(遍历)Map中的所有元素单元。
MFC中的各种Map实现,都提供了实现上述操作的成员函数。为了方便讨论,我们以CMap为代表,进行讲解。
一旦你已经向Map中插入了一个关键字-元素值组合对(Key-Value pair)单元,就可以利用关键字访问Map,从而有效地检索、添加或者删除元素单元,也可以遍历Map中的所有单元。
//map数据的插入(1) int main(void) { map<int, string> mapStudent; mapStudent.insert(pair<int, string>(1, "student_one")); mapStudent.insert(pair<int, string>(2, "student_two")); mapStudent.insert(pair<int, string>(3, "student_three")); map<int, string>::iterator studentIter; for (studentIter = mapStudent.begin(); studentIter != mapStudent.end(); ++studentIter) { cout << studentIter->first << " " << studentIter->second << endl; } return 0; }
参考:
http://www.cnblogs.com/TianFang/archive/2006/12/30/607859.html
http://www.cnblogs.com/dongzhiquan/archive/2009/08/05/1994759.html
http://0710adu.banzhu.net/article/0710adu-26-919093.html