#include<iostream>
#include<map>
#include<algorithm>
using namespace std;
void func(pair<int, char> t)
{
cout << "key: " << t.first << " value: " << t.second << "
";
}
int main()
{
//map的底层实现是红黑树,每一次插入都会引起排序,查找某一个元素的代价是Log(n)
typedef pair<int, char> in_pair;
map<int, char> mp;
mp.insert(in_pair(1, 'a'));
mp.insert(in_pair(2, 'b'));
mp.insert(in_pair(5, 'e'));
mp.insert(in_pair(4, 'd'));
mp.insert(in_pair(3, 'c'));
for_each(mp.begin(), mp.end(), func);
map<int, char> mp1;
mp1.insert(in_pair(6, 'f'));
mp1.insert(mp.begin(), mp.end()); //使用另一个map来进行插入
cout << "*****************************************
";
for_each(mp1.begin(), mp1.end(), func);
cout << "***************************************
";
map<int, char> mp2(mp); //构造函数2
for_each(mp2.begin(), mp2.end(), func);
cout << "***************************************
";
map<int, char> mp3(mp1.begin(), mp1.end()); //构造函数3
for_each(mp3.begin(), mp3.end(), func);
return 0;
}