posts - 183,  comments - 10,  trackbacks - 0

联合容器的第三个参数

map 容器的第三个参数,即函数对象类型。
对第一个参数进行比较,重载 operator ()。这是第一种方案。

第二种方案,对第一个参数类型进行包装,然后针对这个类型重载 operator < 。

总结:
·第一个参数原装类型,添加第三个类型,函数对象,重载 operator () 。
·第一个参数对原类型进行包装,重载 operator < 。

参考:
为什么数据结构很重要
http://download.csdn.net/detail/yun_2106118/1768192

 1 #include <iostream>
 2 #include <map>
 3 using namespace std;
 4 
 5 struct ltstr
 6 {
 7     bool operator () (const char* s1, const char* s2) const
 8     {
 9         return strcmp(s1, s2) < 0;
10     }
11 };
12 
13 int main()
14 {
15     map<const char*const char*, ltstr> phones;
16     phones["Gao Jun"= "23423423";
17     phones["Gao Jie"= "89878979";
18 
19     for (map<const char*const char*, ltstr>::const_iterator cit = phones.begin(); cit != phones.end(); ++cit)
20     {
21         cout << cit->first << '\t' << cit->second << endl;
22     }
23 
24     return 0;
25 }

 


posted on 2011-09-10 12:51 unixfy 阅读(243) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理