首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

再问段看不懂的代码,这样写有啥用解决方法

2012-03-02 
再问段看不懂的代码,这样写有啥用#include mapstruct A{int kint j}struct A_Less{inline bool opera

再问段看不懂的代码,这样写有啥用
#include <map>
struct A 
{
  int k;
int j; 
};
struct A_Less
{
inline bool operator()( const A& _a1 , const A& _a2 )const
{
return (_a1.k*16+_a1.j)<(_a2.k*16+_a2.j);
}
};

std::map<A, void*, A_Less> A_map;

[解决办法]
A_Less中重载了操作符()

C/C++ code
int main(){    struct A a,b;        struct A_Less al;    a.j = 1;    a.k = 2;    b.j = 3;    b.k = 4;    bool bRet = al(a,b);        string sMsg = bRet ? "b>a" : "a>b" ;    cout<<sMsg.c_str()<<endl;
[解决办法]
stl里的容器都需要有比较大小的函数,如果没提供,就使用默认的。
当默认的函数,不适合用来比较成员的大小时,就得提供一个自己的

热点排行