Doubt about comparison function in sorting array of structures.

Правка en1, от rtanmay, 2018-08-01 22:32:50

Hello,

I was solving this problem. In this I have sorted the array of structures.

//This is my structure: typedef struct node { int a,b,c; } node;

//This gets runtime error on test-32. //Error: comparison doesn't meet irreflexive requirements, assert(!(a < a)). bool compare(node n1, node n2) { if(n1.c > n2.c) return false; else return true; }

//However this gets accepted, only change is in >**=** bool compare(node n1, node n2) { if(n1.c >= n2.c) return false; else return true; }

Why is this error coming? I thought even if we give only > then for equal value it will return true, so there should not be any problem between comparison of equal elements.

Thank you

Теги #sorting, comparison function

История

 
 
 
 
Правки
 
 
  Rev. Язык Кто Когда Δ Комментарий
en6 Английский rtanmay 2018-08-01 22:41:04 4
en5 Английский rtanmay 2018-08-01 22:40:19 138
en4 Английский rtanmay 2018-08-01 22:37:26 4 Tiny change: 'ge is in >**=**\nbool com' -> 'ge is in >=\nbool com'
en3 Английский rtanmay 2018-08-01 22:36:34 50
en2 Английский rtanmay 2018-08-01 22:33:24 8
en1 Английский rtanmay 2018-08-01 22:32:50 817 Initial revision (published)