#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; |
} |