
为此创建一个包装器,
sort.IntSlice以记住索引并在交换值时交换它们:
type Slice struct { sort.IntSlice idx []int}func (s Slice) Swap(i, j int) { s.IntSlice.Swap(i, j) s.idx[i], s.idx[j] = s.idx[j], s.idx[i]}游乐场:http : //play.golang.org/p/LnSLfe-
fXk。
编辑: 正如DaveC在评论中提到的那样,您实际上可以环绕
sort.Interface以为任何可排序类型创建数据结构:
type Slice struct { sort.Interface idx []int}func (s Slice) Swap(i, j int) { s.Interface.Swap(i, j) s.idx[i], s.idx[j] = s.idx[j], s.idx[i]}欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)