读书人

struct的小于大于操作符怎么定义

发布时间: 2012-11-04 10:42:42 作者: rapoo

struct的小于大于操作符如何定义?
stl算法通常要求元素有<和==操作符, ==好说, <比较头疼,因为通常容器存储自定义结构体,而这些结构体并没有逻辑上的小于大于关系,这种情况下如何定义"小于"关系?

例如

C/C++ code
struct sdata{std::basic_string<TCHAR> ...int ...char ...std::basic_string<TCHAR> ...};



对于混合数据结构,通常也就是字符串和整数吧,或者包含其他结构体;不过说到底也都是些基本数据类型了,我目前没啥好办法来区分,用了个比较耗时间的操作...

[解决办法]
自己重载比较大小的操作符啊。


C/C++ code
struct sdata{    std::basic_string<TCHAR> a;    int b;        bool operator< (const sdata &r) const    {        if(this->a < r->a) return true;        else if(r->a < this->a) return false;        else return this->b < r->b;    }}; 

读书人网 >C++

热点推荐