摘要:
title: 右值引用与移动语义 date: 2019 2 24 15:06:34 tags: 学习 categories: 日常 什么是右值?在C++中,一种被广泛认可的说法是,不能取地址,没有名字的就是右值,通常位于等号右边,相反,位于等号左边的,能取地址,有名字的被称为左值。 例如上式中,a就 阅读全文
摘要:
各个编程字体比较 "各个字体下载地址" 最新出了个Jetbrains Mono,推荐一下这个 10. Ubuntu mono 9. Courier new 8. Menlo 7. Hack 6. Source code pro 5. Droid Sans Mono 4. Deja vu Sans M 阅读全文
摘要:
优先队列的应用 C++实现 优先队列可以用堆来实现, 堆底层可以用数组表示, 通过索引关系,可以表示成一颗二叉完全树 C++的STL提供了相应的容器适配器 包含在 头文件中 下面通过一道题来看如何使用它 "给定一个字符串,请将字符串里的字符按照出现的频率降序排列。" 首先,统计字符出现的频率,通过m 阅读全文
摘要:
使用类模板的static成员 定义下面这个模板类 下面的代码来使用它 这会报错,因为必须在类外部出现数据成员的定义。 在类模板含有 static 成员的情况下,成员定义必须指出它是类模板的成员 这样就能通过编译链接了 阅读全文
摘要:
当友元是类模板时 现在有这样一个类模板 存在另一个类模板,需要访问上面的类模板的私有域 要访问QueueItem类私有域就必须声明Queue类为友元 但两个类不在同一文件中 所以必须先声明Queue类模板; 同时也必须声明Queue类为友元 这里Queue的T与QueueItem的T为相同类型 注意 阅读全文
摘要:
C++操作符重载 下面举个简单的例子介绍重载操作符 cpp include class A { friend std::istream &operator (std::istream &, A &); friend std::ostream &operator (std::istream &in, 阅读全文
摘要:
关键字主要用来声明变量 即可使用extern也同时初始化 定义后声明可以,但声明后再定义不行 定义一个 全局变量,默认不可以被 , 想要在其他文件使用的话,必须定义为 const变量(常量)定义时必须初始化 阅读全文
摘要:
二叉搜索树 + 二叉搜索树是一颗二叉树 + 每个节点应该包含三个属性 , , , 根节点 为`NIL` + 设x是二叉搜索树的一个节点, y是x左子树的一个节点, 那么 遍历 遍历分前中后, 以根节点的遍历顺序而划分 之前写过一篇二叉搜索树的, 用C语言实现, 可以参考一下 "C语言实现" 感受一下 阅读全文
摘要:
计数排序 计数排序假设 个输入元素都是 到`k k`为某整数) 当 为`O(n) O(n)` 计数排序基本思想是:对于每个输入元素 , 确定小于 的元素个数 先新建一个可变数组c, 初始化为0 c记录a中每个元素出现的个数 然后计算对于 从`0..k i` 最后把元素a[i]放入数组b的正确位置上 阅读全文
摘要:
优先队列 优先队列是用来维护一组元素集合的数据结构 一个最小优先队列支持下列操作: + 把key插入键i的值 + 删除并返回堆的最小值 可以用堆来实现优先队列 关于建堆的操作,之前的文章已经介绍过了 rust pub struct MinHeap { size: usize, array: Vec, 阅读全文