于是今天用C++11的模版实现了几个整数和浮点数的排序算法模版,分别是
- 冒泡排序
- 鸡尾酒排序
- 插入排序
- 选择排序
- 壳排序
- 快速排序
于是今天用C++11的模版实现了几个整数和浮点数的排序算法模版,分别是
之前写了xterm256的wrapper,然后又看到了HTTPie,感觉Solarized的配色挺好看的,于是就有了这个带语法高亮输出的HTTP头捕获程序。
整个程序比较简单,用到了libpcap抓包,然后正则匹配、高亮输出,效果如下。
如果你的terminal支持xterm-256color模式的话,就可以在terminal中使用256种颜色。利用这256种色彩,可以做出很棒/很酷的效果。比如vim的语法高亮。
这里简单的实现了一个C++类,与cout的行为相同,仅在输出类xterm256::color的实例时做处理,将紧随其后的、截止下一个xterm256::color类实例前的文字输出为对应的颜色。
类xterm256::color使用3个unsigned short作为初始化参数,依次对应RGB。在输出时,由于仅有256种色彩,将自动转为与xterm-256color颜色表中欧氏距离最近的一种颜色。
简要的使用例子及截图如下
之前写过一篇利用k-means算法来计算图像中主要颜色的文章,K-means聚类算法计算给定图像中主要颜色。于是今天顺便写了个较为通用的C++下的K-means算法模版。
有一个主要的模版,还有一个稍有变化的模版,仅体现在传入的第三个参数上。
主要的参数如下,
Parameter | Description |
---|---|
k | 聚类的种数 |
min_diff | 收束条件,旧的cluster中心与新的之间变化的距离 |
data1 | std::vector<数据类型> |
data2 | std::vector<std::pair<数据类型, 该实例的统计个数>> |
center | 传入std::vector<std::pair<数据类型, 该实例的统计个数>>,返回该组数据的中心值 |
distance | 传入给定数据中的两个元素, 返回它们的距离 |
返回值都是包含k个该种类型的元素的std::vector