摘要: 堆排序 堆是一个数组,可以看成一颗二叉树 首先要能维护最大堆(排序通常用最大堆) 思路就是找出该节点和两个子节点的最大节点 如果该节点为最大,则结束,否则,先交换,然后继续判断子节点 递归实现起来更简单 具体实现如下 构建最大堆 依次对每个节点都进行维护即可构建最大堆 堆排序 1. 先构建一个最大堆 阅读全文
posted @ 2018-09-09 23:21 弱冠 阅读(719) 评论(0) 推荐(0) 编辑
摘要: 代表引用计数 以下是标准库文档的介绍 Single threaded reference counting pointers. 'Rc' stands for 'Reference Counted'. The type Rc provides shared ownership of a value 阅读全文
posted @ 2018-08-22 22:26 弱冠 阅读(2268) 评论(0) 推荐(0) 编辑
摘要: 泛型可以使用在结构体中 其中x,y都属于T类型。 实现结构体的方法或者关联函数需要在impl关键字后面指定泛型 讲到泛型就绕不开trait,trait类似于其他语言中的接口 具体使用方法如下 要希望泛型拥有特定的功能,就必须指定泛型的trait,简称trait bound 泛型T要有比较和打印功能, 阅读全文
posted @ 2018-08-12 10:19 弱冠 阅读(3165) 评论(2) 推荐(1) 编辑
摘要: 可以这样定义一个枚举: 这样使用枚举中的值: IpAddrKind::V4 和 IpAddrKind::V6 都是 IpAddrKind 类型的。 可以仅仅使用枚举并将数据直接放进每一个枚举成员,枚举成员也可以是一个枚举,结构体等等。 也可以在枚举上定义方法 阅读全文
posted @ 2018-08-03 18:27 弱冠 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 结构体定义: 这样可以定义一个结构体。 当已有一个结构体User1时: 可以这样把剩余的字段赋值为和user1相同的值。 元组结构体 这样便定义了一个元组结构体,在你希望命名一个元组时很有用。 方法 结构体内可以实现方法: 这样调用: 一个impl内可以实现若干方法,一个结构体也可以有多个impl。 阅读全文
posted @ 2018-08-03 17:29 弱冠 阅读(2842) 评论(0) 推荐(0) 编辑
摘要: 在讲引用之前先介绍一下所有权。 Rust中每一个值都有且仅有一个所有者,当其所有者离开作用域后,这个值就被丢弃。 上述代码中s1将无效,因为改变量是存储在堆上的。 该代码会编译报错。 因为在特定作用域中的特定数据有且只有一个可变引用。 也不能在拥有不可变引用的同时拥有可变引用。 上述代码中str1将 阅读全文
posted @ 2018-08-01 16:02 弱冠 阅读(428) 评论(0) 推荐(0) 编辑
摘要: 头文件代码如下: 创建二叉搜索树: 输入-1,该指针值为NULL 打印树: 删除整个树: 查找某个节点: 查找最小值: 插入节点: 删除某节点: 阅读全文
posted @ 2018-06-15 00:11 弱冠 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 声明一个数组指针: 这是一个指向长度为4的整数数组的指针 声明一个指针数组: 这是一个包含4个指向整数的指针的数组 开始p1指向数组的第一行,现在指向第二行 结果如下: p2[0]是个整数指针,现在指向了二维数组a的第一元素 完整代码如下: 运行结果如图: 阅读全文
posted @ 2018-06-09 23:17 弱冠 阅读(234) 评论(0) 推荐(0) 编辑
摘要: 如何快速把里面的单词提取出来: 导入正则表达式模块 当你使用 re.split() 函数时候,需要特别注意的是正则表达式中是否包含一个括号捕获分组 如果使用了捕获分组,那么被匹配的文本也将出现在结果列表中 阅读全文
posted @ 2018-06-06 18:57 弱冠 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 介绍闭包的一些坑 阅读全文
posted @ 2018-06-04 18:50 弱冠 阅读(256) 评论(0) 推荐(0) 编辑