优先队列是队列的一种,但是自身具有一定的排序功能,所以不具有队列“先进先出”的性质 刚刚接触优先队列,看过网上的用法后感觉还是太过于朦胧,所以打算自己写一个稍微细节一点的. 头文件 #include<queue> 常用操作 q.push() //放入元素 q.pop() //弹出元素 q.empty()//判断队列是否为空 q.top()//返回头部元素 q.size()//返回队列元素个数 声明方式 priority_queue<int>q; 默认的情况是大顶锥,及先输出的是元素…
结构体: 1.用来自定义复杂数据结构 2.struct里面可以包含多个字段(属性) 3.struct类型可以定义方法,注意和函数的区分 4.strucr类型是值类型 5.struct类型可以嵌套 6.go语言中没有class类型,只有struct类型 struct声明: type  标识符 struct{ field1 type field2 type } 例子: type Student struct{ Name string Age  int Score int } struct中字段访问,…
结构体 结构体定义 结构体的定义只是一种内存布局的描述(相当于是一个模板),只有当结构体实例化时,才会真正分配内存空间 结构体是一种复合的基本类型,通过关键字 type 定义为 自定义 类型后,使结构体更便于使用 定义一个简单的结构体: 类型名(Point)在同一个包内不能重复 字段名(X,  Y)必须唯一 type Point struct { X int Y int } 同类型的变量也可以写在一行: type Color struct { R, G, B byte } 实例 结构体实例与实例…
package main import ( "fmt" "math" ) type vertex struct { X, Y float64 } //值接收者是复制一个对象.指针接收者是直接修改地址指向的值 func (v vertex) abs() float64 { return math.Sqrt(v.X*v.X + v.Y*v.Y) } //这里为 *vertex 定义了 Scale 方法. func (v *vertex) scale(f float64)…
go 结构体与方法   go 结构体相当于 python 中类的概念,结构体用来定义复杂的数据结构,存储很多相同的字段属性 结构体的定义 1.结构体的定义以及简单实用 package main import ( "fmt" ) func main() { type Student struct { //定义结构体 name string age int } s1 := new(Student) // 定义指向结构体的指针 s1.name = "xiaomu" s1.…
go结构体相当于python中类的概念 结构体用来定义复杂的数据结构,存储很多相同的字段属性 1.结构体的定义以及简单实用 package main import ( "fmt" ) func main() { type Student struct { //定义结构体 name string age int } s1 := new(Student) // 定义指向结构体的指针 s1.name = "xiaomu" s1.age = 10 fmt.Printf(&q…
@ 目录 1. 结构体别名定义 2. 工厂模式 3. Tag 原信息 4. 匿名字段 5. 方法 1. 结构体别名定义 变量别名定义 package main import "fmt" type integer int func main() { //类型别名定义 var i integer = 1000 fmt.Printf("值: %d, 类型: %T\n", i, i) var j int = 100 j = int(i) //j和i不属于同一类型,需要转换…
结构体的定义 结构体是将零个或者多个任意类型的命令变量组合在一起的聚合数据类型.每个变量都叫做结构体的成员. 其实简单理解,Go语言的结构体struct和其他语言的类class有相等的地位,但是GO语言放弃了包括继承在内的大量面向对象的特性,只保留了组合这个基础的特性.所有的Go语言类型除了指针类型外,都可以有自己的方法. 先通过一个下的例子理解struct,下面的这个例子用于定义一个student的struct,这个机构体有以下属性:Name,Age,Sex,Score,分别表示这个学生的名字…
将派生类的方法声明为接口嵌入到基结构体中,派生结构体声明该接口为自身.…
面向对象:go语言仅支持封装不支持继承和多态 所以go语言没有class,只有struct(结构体) 无论地址还是结构本身,一律用 . 来访问成员 go语言编译器可以自动区分是值传递还是指针传递,值传递不会改变原值,指针传递会复制指针地址     要改变内容必须使用指针接收者,结构过大也考虑用指针接收者,如果有指针接收者,最好用指针接收者 使用 new 函数给一个新的结构体变量分配内存,它返回指向已分配内存的指针:var t *T = new(T),如果需要可以把这条语句放在不同的行(比如定义是…