Golang中container/heap包用法
heap包对任意实现了heap接口的类型提供堆操作。(小根)堆是具有“每个节点都是以其为根的子树中最小值”属性的树。树的最小元素在根部,为index 0.
heap是常用的实现优先队列的方法。要创建一个优先队列,实现一个具有使用(负的)优先级作为比较的依据的Less方法的Heap接口,如此一来可用Push添加项目而用Pop取出队列最高优先级的项目。
1 | type Interface |
heap包对任意实现了heap接口的类型提供堆操作。(小根)堆是具有“每个节点都是以其为根的子树中最小值”属性的树。树的最小元素在根部,为index 0.
heap是常用的实现优先队列的方法。要创建一个优先队列,实现一个具有使用(负的)优先级作为比较的依据的Less方法的Heap接口,如此一来可用Push添加项目而用Pop取出队列最高优先级的项目。
1 | type Interface |
list是一个双向链表。该结构具有链表的所有功能。
go语言提供的flag包可以解析命令行的参数,代码:
1 | package main |
编译:
go build flag.go
运行:
./flag -name=world
输出:
Hello, world
如果不输入name参数:
./flag
则输出:
Hello,
例如像下面的数组:
1 | $users = array( |
先将age提取出来存储到一维数组里,然后按照age升序排列。具体代码如下:
1 | $ages = array(); |
执行后,$users就是排序好的数组了,可以打印出来看看。如果需要先按年龄升序排列,再按照名称升序排列,方法同上,就是多提取一个名称数组出来,最后的排序方法这样调用:
1 | array_multisort($ages, SORT_ASC, $names, SORT_ASC, $users); |
使用这个方法最大的好处就是可以自定义一些比较复杂的排序方法。例如按照名称的长度降序排列:
1 | usort($users, function($a, $b) { |
这里使用了匿名函数,如果有需要也可以单独提取出来。其中$a, $b可以理解为$users数组下的元素,可以直接索引name值,并计算长度,而后比较长度就可以了。
在部署Open-Falcon
,安装绘图组件 Dashboard
执行 ./env/bin/pip install -r pip_requirements.txt
时出现如下错误:
error: command 'gcc' failed with exit status 1
解决方式:
1 | sudo yum -y install gcc gcc-c++ kernel-devel |
最近在看CodeIgniter
的源码,在system/common.php
中有个公共函数load_class
的定义,其中用到file_exists
函数来判断指定类的文件是否存在,于是就具体查了下该函数的用法~
安装需要用的包
yum install -y pptpd iptables
配置PPTP的设置。首先配置/etc/ppp/options.pptpd
文件,找到网络和路由设置,我们设置ms-dns
为8.8.8.8
和8.8.4.4
1 | # Network and Routing |