文章目录[隐藏]
关键词:c++,stl,stl map
c++++的stl中map的使用
#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; }
来源搞代码网《c++的stl中map的使用》http://www.gaodaima.com/68569.html