1。目录
- map简介
- map的功能
- 使用map
- 在map中插入元素
- 查找并获取map中的元素
- 从map中删除元素
2。map简介
map是一类关联式容器。它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响。对于迭代器来说,可以修改实值,而不能修改key。
3。map的功能
- 自动建立Key - value的对应。key 和 value可以是任意你需要的类型。
- 根据key值快速查找记录,查找的复杂度基本是Log(N),如果有1000个记录,最多查找10次,1,000,000个记录,最多查找20次。
- 快速插入Key - Value 记录。
- 快速删除记录
- 根据Key 修改value记录。
- 遍历所有记录。
上面这是转别人写的
下面是使用代码
#include "stdafx.h"
#include <map>
#include <iostream>
#include <string>
using namespace std;
void map_test1()
{
//map 关联两个对象
//第一个是索引类型 key
//第二个是值的类型 value
map<string,int> mk;
mk["ASM"] = 1;
mk["BC++"] = 2;
mk["C"] = 3;
mk["delphi"] = 4;
cout<< "The index of C is "<< mk["C"] <<endl;
}
//
class CMyClass
{
public:
CMyClass(){} //默认空的构造函数
int m_id;
int m_age;
CMyClass(int id, int age)
{
m_id = id;
m_age = age;
}
//重载 = 号
operator = ( CMyClass mc)
{
m_id = mc.m_id;
m_age = mc.m_age;
}
};
void map_test2()
{
map <string, CMyClass> mlist;
mlist["Safe"] = CMyClass(1,3);
mlist["debug"]= CMyClass(4,6);
cout<<"the Safe id is "<< mlist["Safe"].m_id <<" the age is "<<mlist["Safe"].m_age <<endl;
}
int main(int argc, char* argv[])
{
map_test2();
return 0;
}