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