为了账号安全,请及时绑定邮箱和手机立即绑定

Go / Golang 对指向结构的指针切片进行排序

Go / Golang 对指向结构的指针切片进行排序

Go
慕容森 2022-07-11 16:33:46
如何对指向结构的指针切片进行排序。我正在尝试根据开始时间对切片进行排序。/** * Definition for an Interval. * type Interval struct { *     Start int *     End   int * } */func employeeFreeTime(schedule [][]*Interval) []*Interval {        fmt.Println("Schedule initial #", schedule)    sort.Slice(schedule, func(i,j int) bool{        return schedule[i].Start < schedule[j].Start    })        fmt.Println(schedule)    return nil    }
查看完整描述

2 回答

?
芜湖不芜

TA贡献1796条经验 获得超7个赞

发送一片,而不是一片片,你可以很好地排序:


/**

* Definition for an Interval.

*/

 type Interval struct {

     Start int

     End   int

 }



func employeeFreeTime(schedule []*Interval) []*Interval {


    fmt.Println("Schedule initial #", schedule)

    sort.Slice(schedule, func(i,j int) bool{

        return schedule[i].Start < schedule[j].Start

    })


    fmt.Println(schedule)

    return nil


}


func main() {

    intervals :=  []*Interval {

        {

            Start: 10,

            End:   100,

        },

        {

            Start: 5,

            End:   100,

        },

    }

    employeeFreeTime(intervals)

}


查看完整回答
反对 回复 2022-07-11
?
动漫人物

TA贡献1815条经验 获得超10个赞

如果您想对Interval切片切片中的所有 s 进行排序。


func employeeFreeTime(schedule [][]*Interval) []*Interval {


    var tempSlice []*Interval


    for _, slice := range schedule {

        tempSlice = append(tempSlice, slice...)

    }


    sort.Slice(tempSlice, func(i, j int) bool {

        return tempSlice[i].Start < tempSlice[j].Start

    })


    return tempSlice

}


查看完整回答
反对 回复 2022-07-11
  • 2 回答
  • 0 关注
  • 106 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信