
#include<bits/stdc++.h> |
using namespace std; |
//typedef pair<const Key, T> value_type; |
bool fncomp(char a, char b) |
{ return a<b; } |
struct classcomp{ |
bool operator () (const char& a,const char &b) |
{ return a<b; } |
}; |
int main() |
{ |
map<char ,int >my_map;// 直接定义 |
// 复制定义 |
map<char ,int >second(my_map); |
// 迭代器定义 |
map<char ,int >third(my_map.begin(),my_map.end()); |
map<char ,int ,classcomp>fourth;// 重新定义compare对象,对()重载 |
// 通过函数指针 |
// bool(*fn_pt)(char, char) = fncomp; |
// map<char, int, bool(*)(char, char)> fifth(fn_pt); |
//======================================================= |
my_map['a']=1000;// 赋值 |
|
my_map['b']=1; |
my_map['c']=10; |
map<char ,int >::key_compare key_comp; |
map<char ,int >::iterator t;// 指针 |
t=my_map.begin(); |
//遍历一遍,first第一个 second第二个 |
for(;t!=my_map.end();t++) |
//t是指针,用-> |
cout<<t->first<<" "<<t->second<<endl; |
cout<<"========================"<<endl; |
//==================================================== |
//插入元素 |
my_map.insert(pair<char ,int >('x',101)); |
my_map.insert(pair<char ,int >('p',99)); |
cout<<"x=>"<<my_map.find('x')->second<<endl; |
cout<<"p=>"<<my_map.find('p')->second<<endl; |
cout<<"========================"<<endl; |
//===================================================== |
//compare参数使用 |
key_comp=my_map.key_comp(); |
cout<<"mymap contains:\n"; |
// 迭代器反向遍历的起始位置 |
char highest=my_map.rbegin()->first; // key value of last element |
t=my_map.begin(); |
do { |
cout<<(*t).first<<" => "<<(*t).second<<endl; |
} while(key_comp((*t++).first,highest)); |
cout << endl; |
//====================================================== |
return 0; |
} |



