什么是go语言指针数组
指针数组是一个数组,其中的每个元素都是一个指针。在go语言中,指针数组可以定义为包含指针的数组。与普通数组不同,指针数组中存储的是指针变量的地址,而不是实际的值。指针数组可以存储数据类型不同的指针。
降序排序指针数组
降序排序指针数组可以使用sort包中的sort函数进行排序。首先,需要定义一个排序函数,它将比较两个指针的值。在这个函数中,我们可以使用指针访问实际的值,然后比较它们。接着,我们需要将这个排序函数传递给sort包中的sort函数进行排序。
示例代码
下面是一个简单的示例代码,演示如何利用go语言指针数组进行降序排序。
package main
import (
"fmt"
"sort"
)
func main() {
var arr [5]*int
var a int = 12
var b int = 23
var c int = 3
var d int = 35
var e int = 19
arr[0] = &a
arr[1] = &b
arr[2] = &c
arr[3] = &d
arr[4] = &e
fmt.printf("before sorting: %v\n", *arr[0])
printarr(&arr)
sort.sort(sort.reverse(byvalue(arr)))
fmt.printf("after sorting: %v\n", *arr[0])
printarr(&arr)
}
func printarr(arr *[5]*int) {
for i := 0; i < len(arr); i {
fmt.printf("%v ", *arr[i])
}
fmt.println()
}
type byvalue [5]*int
func (a byvalue) len() int { return len(a) }
func (a byvalue) swap(i, j int) { a[i], a[j] = a[j], a[i] }
func (a byvalue) less(i, j int) bool { return *a[i] > *a[j] }
在上面的示例代码中,我们先定义了一个名为byvalue的自定义类型。这个类型实现了sorter接口的三个方法:len、swap和less,它们的作用分别是获取排序对象长度、交换两个元素的值和比较两个元素的大小。在less方法中,我们比较两个指针所指向的实际值大小,并返回比较结果。最后,我们将排序函数传递给sort包中的sort函数,并打印排序前后的结果。
本文来自投稿,不代表亲测学习网立场,如若转载,请注明出处:https://www.qince.net/golang-u299.html
郑重声明:
本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
我们不承担任何技术及捕鱼10元起上10元下的版权问题,且不对任何资源负法律责任。
如遇到资源无法下载,请点击这里失效报错。失效报错提交后记得查看你的留言信息,24小时之内反馈信息。
如有侵犯您的捕鱼10元起上10元下的版权,请给我们私信,我们会尽快处理,并诚恳的向你道歉!