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

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

2012-11-04 
struct的小于大于操作符如何定义?stl算法通常要求元素有和操作符, 好说, 比较头疼,因为通常容器存储

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;    }}; 

热点排行