#include <iostream>
#include <map>
#include<algorithm>
using namespace std;
void fun(pair<int, char> pr)
{
cout << pr.first << pr.second << endl;//first代表键值,second代表实际值。
}
void MapConstruct()
{
//重命名pair。
typedef pair<int, char> in_pair;
//迭代函数,用于检测当map有相同键值时,实际值是否插入成功。
pair<map<int, char>::iterator, bool> pr;//
//定义对象,并赋值。(插入值)
map<int, char> db;//<键值,实际值>
db.insert(pair<int, char>(1, 'a'));//需要和map的类型一一对应。
db.insert(in_pair(2, 'b'));
db.insert(in_pair(4, 'c'));
db.insert(in_pair(10, 'c'));
db.insert(in_pair(7, 'c'));
db.insert(in_pair(6, 'c'));
db.insert(in_pair(5, 'c'));
//迭代函数,插入值
map<int, char>::iterator ite = db.begin();
ite++;
ite++;
ite++;
db.insert(ite,in_pair(3, 'c'));//插入的值并未被插入下标为四的位置,而是它应该存在的位置。
//插入一段
map<int, char>db1;
db1.insert(in_pair(8, 'b'));
db1.insert(in_pair(9, 'b'));
db1.insert(db.begin(),db.end());
//初始化
map <int, char>db2(db1);
map<int, char>db3(db2.begin(),db2.end());
//输出。
for_each(db.begin(),db.end(),fun);
for_each(db1.begin(),db1.end(),fun);
for_each(db2.begin(),db2.end(),fun);
for_each(db3.begin(),db3.end(),fun);
}
int main()
{
MapConstruct();
system("pause");
return 0;
}