fix comparison operator
Map : add member-by-member comparison op
custom swap