1.map的自动排序
map<type1,type2>自动按照type1从小到大排序
type1:key(键)
type2:value

2.map的自动赋值问题
map<int,int>mp;
如果你对mp进行赋值,
例如mp[100000]++,则认为是mp[100000]的初始值是0,而其他值没有赋值。
即如果用for循环进行输出的话(看代码)

for(map<int,int>::iterator it=mp.begin();it!=mp.end;it++)
{
     cout << it->first << " " <<  it->second << endl;
}

最后的答案只会输出100000和1;别的值不会输出。

3.map的clear的函数
map的clear函数会把map中的所有东西都清空,不会保留原来的任何东西,不会说把什么清空就是变为零,或变成空格什么的,是绝对清空,而你一旦用到其中的变量,便会自动赋值为0;
例:

string a="aaa";
map<string,int>mp;
mp.clear();               //虽然map已经被清空,但下面的mp[a]会自动赋值为0;
cout << mp[a] << endl;
//或者
cout << mp[a]++ << endl;  //最后的结过是自动赋值的0加上1,所以输出1;
//如果你是像下面“4.map的输出”这样输出的,则不会输出任何值,因为clear会把所有东西都清空;

4.map的输出

map<int,int>mp;

for(map<int,int>::iterator it =mp.begin;it!=mp.end;it++)
{
      cout << it->first << " " << it->second << endl;
}

5.map.count(Key)返回值为1或者0.
在询问map键对应的值是否存在的时候,用count可以减少复杂度(切记切记)
1返回存在,0返回不存在,返回的是布尔类型的值,因为在map类型中所有的数据的Key值都是不同的,所以被count的数要么存在1次,要么不存在.
algorithm头文件定义了一个count的函数,其功能类似于find。

6.map赋值:可以直接mp[x]++ => 对应x键的值++

7.map跟pair的结合使用:
map< pair<string,string> ,int >a;
map的后面是int