- 博客(24)
- 收藏
- 关注
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 js从零开始实现堆叠图
js从零开始实现堆叠图基于canvas,没有使用任何第三方可视化库API,实现了柱状堆叠图和流状堆叠图实现了生成过程动画为了简单,流状堆叠图直接用了折线,如果想要曲线效果需要进行插值效果:代码见github...
2018-12-29 21:39:11
1196
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 EOS 骰子游戏机器人
EOS 骰子游戏机器人最近EOS上bc类游戏似乎十分火热,下注即挖矿,引得大批矿工用机器人前往下注刷代币,最进闲来无事也写了几个脚本去凑凑热闹github机器人用到了EOS的命令行工具cleos和keosd基本思路就是用cleos不断向合约地址发起交易,用python不断执行这些命令,非常简单下面是betdice平台机器人部分代码:import subprocessimport ti...
2018-12-29 21:27:19
1399
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 C++模板与泛型(3.模板特化)
我们编写的模板很多时候并不是对所有的类型都是适合的,有时候甚至是错误的,这种情况下,我们需要模板特化(template specialization),模板特化就是指某个模板定义中的一个或多个模板形参的实际类型或实际值是指定的。1.函数模板特化函数模板特化形式:template关键字后接一对空尖括号<>再接模板名和一对尖括号,尖括号中指定这个特化定义的模板形参函数形参表函数体在C++模板与
2017-09-17 16:33:51
600
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 C++模板与泛型(2.实现自己的Queue类模板)
在了解了模板与泛型的基础知识后,我们就可以着手编写自己的泛型程序了,现在,我们来实现一个自己的Queue类模板,实现标准库queue类的部分接口并自己添加一些操作。1.思路我们采用链表来实现Queue,我们定义了两个类:QueueItem和Queue,QueueItem用于存储Queue中元素的值,Queue中存储指向链表头和尾的两个指针。2.QueueItem因为QueueItem仅仅是一个为了实
2017-09-17 13:10:36
569
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 C++模板与泛型编程(1.函数模板与类模板)
所谓泛型编程就是以独立于任何特定类型的方式编写代码,模板是泛型编程的基础。1.函数模板我们经常会遇到需要编写函数比较两个对象大小的情况,比如需要比较两个int值得大小、两个char值的大小等等,在C++以前,我们需要为每一种对象编写对应的函数,甚至必须取不同的函数名,有了C++以后,还没接触到泛型编程前我们可能会利用函数重载来避免要取多个不同名字的麻烦,但还是需要编写多个函数:int compare
2017-09-16 16:05:54
363
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 C++类继承(1.基类与派生类)
类继承是OOP的三个基本概念之一(数据抽象、继承、动态绑定),它让我们可以通过修改和扩展一个已有的类(基类)来获得新的类(派生类),提高了代码的可重用性。1.基类与派生类为了说明类继承,我们首先需要一个基类。假设现在有一个Student类,记录学生在班上的编号以及姓名:#ifndef STUDENT_H_#define STUDENT_H_#include <iostream>using st
2017-09-12 14:22:05
1662
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 C++类中指针成员的管理(值型类、智能指针)
在使用C++类的时候免不了会遇到类中需要指针成员的时候,但类成员里面一出现指针就很容易一不小心碰上各种各样的麻烦,尤其需要注意的是类对象的初始化和赋值,下面总结了一些常见解决办法。先来看看这样一个类:#include <iostream>#ifndef DEMO_H_#define DEMO_H_using std::cout;using std::endl;class Demo {
2017-09-01 08:28:33
1165
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 C++类中指针成员的管理(值型类、智能指针)
在使用C++类的时候免不了会遇到类中需要指针成员的时候,但类成员里面一出现指针就很容易一不小心碰上各种各样的麻烦,尤其需要注意的是类对象的初始化和赋值,下面总结了一些常见解决办法。先来看看这样一个类:#include <iostream>#ifndef DEMO_H_#define DEMO_H_using std::cout;using std::endl;class Demo {
2017-09-01 08:21:00
3209
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 推荐一款好用的浏览器Yandex
推荐一款好用的浏览器是俄罗斯人开发的一款浏览器,Yandex的颜值看上去根本就不像是一个战斗民族的人做出来的东西呀: 动态的云雾背景,在我所见过的浏览器里颜值算是非常不错的了。关键是!!!它还有个让人无法拒绝的功能:reader mode,打开之后只显示页面上的文字,去掉一切图片、广告之类无用的东西,再也不用在看资料的时候看着一堆花花绿绿的图片、广告在眼前飘过了,太爽了!!!打开reader mo
2017-08-19 11:13:21
11970
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 C++容器适配器的理解与使用
1.对容器适配器的理解C++提供了三种容器适配器(container adapter):stack,queue和priority_queue。stack和queue基于deque实现,priority_queue基于vector实现。举个简单的例子,我们手机充电的时候需要电源适配器来把220v的交流电转换成较低电压的直流电以供手机充电使用,220v的电压太高了,我们不需要那么高的电压,而且高电压还有
2017-08-18 19:41:50
5917
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 简易shell脚本打造终端字典
平时一般都在终端做事,遇到不认识的单词和想查的一些东西也懒 得挪窝去开浏览器开字典,于是利用w3m和几行shell脚本做了个翻 译工具和wiki词条查看工具,简单地查查单词看看wiki词条也是够用了。1.终端字典工具首先得安装一款终端浏览器,终端浏览器有很多种,lynx,links, elinks等等,不过经过一番试用后个人感觉w3m还是最好用的。 w3m是一个终端下的文本模式的浏览器,跟我
2017-08-15 22:04:03
1557
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 小白建站教程(1)
自己折腾着弄了个个人博客网站C.,结合自己这次有限的经历趁热说说建站的一些事吧。(大神自动跳过,写给小白看的)(一)建站准备1.域名搭建网站首先得有个域名,就是www.baidu.com这样的东西,域名需要 去专门的域名注册网站注册,一般顶级域名(.com)相对比较贵一点,不过一般也有很多几十一百左右一年的,这个可以自己按需选择。国内有很多域名注册商,比如阿里的万网、新网等等,去相应的网站注册好了
2017-06-18 22:27:18
5589
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 inline 与 define
inline函数(内联函数)是C++相对于C的一个新特性,它长这样:inline double square(double x) { return x * x; };为什么要有这么一个新特性呢?程序都是由一条一条指令组成的,要运行程序的时候,操作系统把这些指令载入到内存,CPU再一条一条 地执行这些指令。一般情况下,执行到一条函数调用的指令时,程序要先存储这条指令的内存地址,把函 数参数复制到堆
2017-05-06 00:06:49
422
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 int *const p 与 const int *p
学过C/C++的同学肯定都有过那么一段被这几个东西整的晕头昏脑的时候,下面我们先看看一道题目: int a = 248, b = 4; int const c = 21; const int *d = &a; int *const e = &b; int const * const f = &a; 问下面哪些操作会被编译器禁止:选项A:*c = 32;显然错误,c是in
2017-05-06 00:04:56
884
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 排序算法(5)--快速排序
快速排序,分治法思想,递归实现:#include <stdio.h>#include <stdlib.h>void quickSort(int a[], int low, int high);int main(){ int n, i; printf("Input n:\n"); scanf("%d", &n); int *a = malloc(sizeof(in
2017-04-26 16:50:48
236
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 排序算法(4)--插入排序
插入排序实现:#include <stdio.h>#include <stdlib.h>void insertionSort(int *array, int n);int main(){ int i, n, *array; printf("Input n:\n"); scanf("%d", &n); array = malloc(sizeof(int) * n
2017-04-26 16:48:24
263
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 排序算法(2)--冒泡排序
冒泡排序,复杂度O(n^2),过程可形象地比作冒泡(小数上冒,大数下沉(从大到小排序)),也较为简单,实现如下:#include <stdio.h>#define MAX 100int main(){ int i, j, temp, n; int a[MAX]; printf("Input n:\n"); scanf("%d",&n); for(i = 0;
2017-04-26 16:46:24
202
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 排序算法(1)--选择排序
选择排序较为简单,复杂度O(n^2),不稳定排序算法,实现如下:#include <stdio.h>#define MAX 100int main(){ int i, j, temp, n, index; int a[MAX]; printf("Input n:\n"); scanf("%d", &n); for(i = 0; i < n; i++)
2017-04-26 16:42:15
248
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 排序算法(3)--归并排序
归并排序的递归实现与循环实现:#include <stdio.h>#include <stdlib.h>#include <math.h>#define min(x, y) (x) > (y) ? (y) : (x)int *newArray(int n);void mergeSort(int *array, int n);void merge(int *array, int *arr
2017-04-26 16:38:58
263
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 tmux 与 vim冲突问题的解决方法
tmux是一款神器,与vim简直是perfect match,然而在tmux中打开vim经常会颜色显示不正常,尝试各种方法后终于解决了问题。首先找到tmux的配置文件,如果你是通过homebrew安装的话可以直接在终端输入brew info tmux来查看配置文件位置,cd 到相应的位置,用vim打开example_tmux.conf,在里面加入set -g default_terminal "xt
2017-04-02 16:53:35
4624
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 VirtualBox安装kali linux过程及安装后无法全屏问题解决方法(2)
安装说完了,现在来看看怎么全屏吧,虚拟机无法全屏跟咸鱼有什么区别。。。首先打开vbox,选择设备(Device)选项里面最下面安装增强工具那个选项(insert guest addition cd image...) insert好之后你会发现你的桌面上多了一个光盘一样的东西,并且弹出提示问你要不要run,run一下,如果成功了算你运气好,不过一般应该会提示无法定位程序(una
2017-02-16 18:12:17
4201
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 VirtualBox安装kali linux过程及安装后无法全屏问题解决方法(1)
Kali Linux是基于Debian的Linux发行版,前身是BackTrack,不过现在这个系统已经不维护了,全面转向Kali Linux,由于集成了一大堆入侵破解等等工具而成为黑客必备 这两天闲来无事打算用vbox装一个来过把瘾,无奈其中坑太多,我用vmware和vbox总共装了不下十次才最终在vbox上成功安装并解决了无法全屏的问题,下面就来说下这坑爹的装系统经历。首先v
2017-02-16 16:20:50
12860
![](https://csdnimg.cn/release/blogv2/dist/pc/img/listFixedTop.png)
原创 C语言结构中的边界对齐问题
没错,今天2月14,单身狗如我情人节也只能苦逼地撸代码了。不知道大家有没有发现一个奇怪的现象,见图~ 结构test里面包含了1个int型变量和2个char型变量,照理说sizeof( struct test )应该等于它们三个相加的结果6才对,为什么会等于8呢? 事实上,结构成员在内存中的存储并不是想当然地一个紧挨着一个排列下来的,由于提高数据读取速度的要求以及
2017-02-14 23:56:56
9360
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人