关于set莫名爆炸
  • 板块学术版
  • 楼主YksKuusiTAlv
  • 当前回复6
  • 已保存回复6
  • 发布时间2021/9/22 06:13
  • 上次更新2023/11/4 05:55:18
查看原帖
关于set莫名爆炸
365246
YksKuusiTAlv楼主2021/9/22 06:13

RT,有一道站外题,需要使用 set。

我开了一个结构体,重载运算符的时候,我一开始选择了以下这种方式。

struct LINE{ 
    int l , r , w ; 
    friend bool operator < ( LINE a , LINE b ){
        if( a.w != b.w ) return a.w < b.w ;
        if( a.l != b.l ) return a.l < b.l ;
        if( a.r != a.r ) return a.r < b.r ;
    } LINE(){}
    LINE( int _l , int _r , int _w ){ l = _l , r = _r , w = _w ; }
} ;

set< LINE > s ;

一直Wa80,调了一个世纪,最后只改了一个地方,就是把 set改成这样。

struct LINE{ 
    int l , r , w ; 
    /*friend bool operator < ( LINE a , LINE b ){
        if( a.w != b.w ) return a.w < b.w ;
        if( a.l != b.l ) return a.l < b.l ;
        if( a.r != a.r ) return a.r < b.r ;
    } */
	inline bool operator < ( LINE b ) const{
		if( w != b.w ) return w < b.w ;
		if( l != b.l ) return l < b.l ;
		if( r != b.r ) return r < b.r ;
	}
	LINE(){}
    LINE( int _l , int _r , int _w ){ l = _l , r = _r , w = _w ; }
} ;

set< LINE > s ;

然后就AC了,求助大佬解决本弱的疑问

2021/9/22 06:13
加载中...