06 2019 档案
摘要:链表内部的实现原理是双链表,可以高效地进行任意位置的元素插入和删除操作 类似的还有堆heap和环列表ring,声明和初始化的方式是相同的,只是原理以及操作的函数不同,当理解了原理操作也是很简单的。 声明与初始化: list 的初始化有两种方法:New 和声明。两种方法的初始化效果都是一致的。 变量名
阅读全文
摘要:map 是一种特殊的数据结构:一种元素对(pair)的无序集合,pair 的一个元素是 key,对应的另一个元素是 value,所以这个结构也称为关联数组或字典。 声明: var 映射名称 map[键类型]值类型 key 可以是任意可以用 == 或者 != 操作符比较的类型,比如 string、in
阅读全文
摘要:切片(slice)是对数组一个连续片段的引用(该数组我们称之为相关数组,通常是匿名的),所以切片是一个引用类型。 切片的内部结构包含开始位置地址(&)、大小(len)和容量(cap)。 切片并不存储任何数据,它只是描述了底层数组中的一段。 更改切片的元素会修改其底层数组中对应的元素。 声明: var
阅读全文
摘要:数组是一个由固定长度的特定类型元素组成的序列,一个数组可以由零个或多个元素组成 声明: var 数组名 [数组长度]类型 数组长度在声明后不能改变,因为长度是类型的一部分。 数组的下标是从0开始,到长度len-1为止,长度为3的数组下标对应0,1,2 初始化: var 数组名 [数组长度]类型{初始
阅读全文
摘要:结构体: 声明: 例子: 实例化: 运行结果 {3 3} {1 2} {1 0} {0 0} &{1 2} new关键字: 可以使用 new 关键字对类型(包括结构体、整型、浮点数、字符串等)进行实例化,结构体在实例化后会形成指针类型的结构体 运行结果 0xc04204e080 &{3 0} 0xc
阅读全文
摘要:Go中的流程控制语句有:if(else),for,switch if:(判断流程控制) 关键字 if 是用于测试某个条件(布尔型或逻辑型)的语句,如果该条件成立,则会执行 if 后由大括号括起来的代码块,否则就忽略该代码块继续执行后续的代码(跟C不同,Go中的if不需要加括号) 单个判断: 如果要增
阅读全文
摘要:类型转换: 表达式:转换类型(转换值) 运行结果: i type=int f type=float64 u type=uint p type=string p value=* 可以发现p的值已经变成42对应的ASCII码 int转换为字符串:strconv.Itoa() string转换为int:s
阅读全文
摘要:包: 每个go程序在开头都要有一个package来声明当前包 其中包含main函数的包必须为main包来声明入口 导入包: import 包名称 引用其他包时必须通过import来获取,根据包中的变量或者函数的开头大小写来判断能否导出:大写才能导出,否则不能被外部包引用 函数声明: func 函数名
阅读全文
摘要:基本数据类型: Go中数据类型并不是特别多,但是有一部分用法却比较多,这一部分放到后面再细学。 Go中的基本数据类型有: ①整型:int,uint ②浮点型:float32,float64 ③布尔型:bool ④字符型:byte,rune ⑤字符串型:string ⑥复数型:complex64,co
阅读全文
摘要:第一步:环境安装 ①下载Go https://studygolang.com/dl 找到对应操作系统以及版本进行下载(如果下载不了就“你懂得”吧) 选择msi安装会方便很多(我自己的安装目录D:/Go) ②在D盘根目录下创建的一个文件夹GOPATH,进入后再创建三个文件夹并重命名为bin,src,p
阅读全文
摘要:头文件:#include<vector> 一般声明:vector<{type}> {name,value[可选]} 例:vector<int> a;声明一个int数组a[],大小可以改变 可以用vector来初始化vector: vector<int> b(a);//声明并用向量a初始化向量b ve
阅读全文
摘要:FIRST集的定义: 设G=(VT,VN,P,S)是上下文无关文法 FIRST(a)={a|a=>ab,a∈VT, a,b∈V} 若a=>*ε则规定ε∈FIRST (a) FIRST(α)就是从α可能推导出的所有开头终结符号和可能的ε所构成的集合。 FIRST集的计算://用通俗的语言讲 1.置FI
阅读全文

浙公网安备 33010602011771号