自定义map比较规则及函数调用

来源:互联网 发布:上海电脑数据恢复 编辑:程序博客网 时间:2024/06/04 19:38

参考文章:http://blog.csdn.net/challenge_c_plusplus/article/details/7429963

注意:

1、比较函数中形参为常量引用, 即const string & 形式。

2、typedef bool (*comp)(const string &,const string &);

3、定义:map<string, int, comp> my_map(my_compare);

3、函数形参:map<string, int, comp> my_map,即不用标明什么比较规则,给出类型即可。


#include <iostream>#include <utility>#include <string>#include <map>using namespace std;bool my_compare(const string &str1, const string &str2){return str1 > str2;}typedef bool (*comp)(const string &,const string &);void test(map<string, int, comp> my_map) {    cout << my_map.size() << endl;    map<string, int,comp>::const_iterator itr = my_map.begin();while ( itr != my_map.end()) {cout << itr->first << " : " << itr->second << endl;itr++;}}int main(int argc, char *argv[]){map<string, int, comp> my_map(my_compare);my_map["wjj"] = 1;my_map["lqm"] = 2;my_map["mei"] = 3;test(my_map);return 0;}


0 0
原创粉丝点击