2018年5月1日更新: 多谢楼下小伙伴的提醒,MyCLI确实更强大。 MyCLI 简介 MyCLI 是一个易于使用的命令行客户端,可用于受欢迎的数据库管理系统 MySQL、MariaDB 和 Percona,支持自动补全和语法高亮。它是使用 prompt_toolkit 库写的,需要 Python 2.7、3.3、3.4、3.5 和 3.6 的支持。MyCLI 还支持通过 SSL 安全连接到 MySQL 服务器。 如何在 Linux 上为 MySQL 和 MariaDB 安装 MyCLI 在 Debian/Ubuntu 发行版上,你可以很容易的像下面这样使用 apt 命令 来安装 MyCLI 包: $ sudo apt-get update $ sudo apt-get install mycli 同样,在 Fedora 22+ 上也有 MyCLI 的可用包,你可以像下面这样使用 dnf 命令 来安装它: $ sudo dnf install mycli 对于其他 Lin 继续阅读 >>


李猛 18/04/25 13:21:41
本文是我看了http://python.jobbole.com/88291/后加上自己的一些感想所创 我们都知道,IO比CPU慢很多个数量级,而传统的IO,是阻塞型的,CPU花在等待IO上的时间很多,那么想要提高并发量,选择解决CPU在等待IO上花费的大量时间是一个比较好的出路。 先来看一个阻塞型IO的例子。 同步阻塞下载程序 该脚本的功能是下载10个网页。 import socket urls = ['/'+str(i) for i in range(10)] host = 'www.baidu.com' def fn(url): sock = socket.socket() sock.connect((host,80)) # 这里会阻塞直到发送成功 #send不会阻塞 sock.send(('GET %s HTTP/1.0\r\nHost: %s\r\n\r\n' % (url,host)).encode('utf-8')) respon 继续阅读 >>


李余通 18/04/24 23:53:57
在c++的STL中有函数可以直接对数组元素进行全排列,即next_permutation和pre_permutation,这两个函数都可以实现全排列,只是排列的顺序不同,next_permutation作用为向后排序,而pre_permutation作用为向前排序。 需要头文件#include <algorithm> 示例 #include <iostream> #include <algorithm> using namespace std; int main() { int nums[10]; for( int i = 0; i < 10; i++ ) { nums[i] = i + 1; } int n; cin >> n; do { for( int i = 0; i < n; i++ ) { cout << 继续阅读 >>


王良 18/04/24 22:50:15
前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。 关于虚函数的使用方法,我在这里不做过多的阐述。大家可以看看相关的C++的书籍。在这篇文章中,我只想从虚函数的实现机制上面为大家 一个清晰的剖析。 当然,相同的文章在网上也出现过一些了,但我总感觉这些文章不是很容易阅读,大段大段的代码,没有图片,没有详细的说明,没有比较,没有举一反三。不利于学习和阅读,所以这是我想写下这篇文章的原因。也希望大家多给我提意见。 言归正传,让我们一起进入虚函数的世界。 虚函数表 对C++ 了解的人都应该知道虚函数(Virtual Function)是通过一张虚函数表(Virtual Table)来实现的 继续阅读 >>


楚东方 18/04/24 11:59:24
毫无营养的博客,纯粹给自己公众号打广告~ 新开的一个公众号,大家记得加关注了 公众号的内容主要是关于自己的一些学习生活上的总结以及blog上的一些文章了~ 作者:YinJianxiang 发表于 2018/04/23 00:49:58 原文链接 https://blog.csdn.net/YinJianxiang/article/details/80045200 阅读:15 评论:2 查看评论 继续阅读 >>


殷健翔 18/04/23 00:49:58
前言 说实话自己已经很久没有更新博客了,一方面是自己在这地方天天摸鱼,不好好学习,没什么可以更新的东西;令一方面,自己是在太懒,没办法,毕竟在一个非211、985学校的所谓“实验班”待着,学习太差,蒟蒻一个,还得应付一天到晚的通原、信号与系统、模电、数电…没办法,学业要紧…学业要紧…(不能挂科)不过期间还是水了一次数学建模美赛(当然还有其他的比赛),虽然有很多的不足,完成的也不够好,但感觉第一次比赛还是应该多想些积极的方面。也挺感谢自己的两个队友书记(主要建模和翻译,顺便帮我写paper)和时神(网络大神,负责算法编程)的,(至于我,苦逼写(bian)paper,latex排版,还有协助时神算法实现)要是没有他们可能也就没有这次的机会。至于结果,只拿到一个S,不算特别好,甚至感觉有点窝囊。当然也恭喜那些拿M奖和H奖的童鞋,真的很优秀^_^ 日程 2018年数模美赛时间在北京时间2月9日6点至2月13日9点举行(真的很无语,离春节就一个星期,一个蒟蒻背井离乡,真的挺凄惨的) 201 继续阅读 >>


殷健翔 18/04/23 00:14:40
Python中一共有三种推导式,做一个简述。 推导式的结构 开始符号 处理结果 迭代对象 过滤条件 结束符号 列表推导式 读取输入的内容并转成整数。 [int(x) for x in sys.stdin.readline().split() if x != '\n'] 开始符号:[ 结束符号:] 处理结果:int(x) 迭代对象:for x in sys.stdin.readline().split() 过滤条件:if x != '\n' #实际上这句话可以不要 会生成一个类似[1,2,3,4]的列表 生成器表达式 这个和列表推导式很类似,只是开始符号和结束符号变成了()。 生成器的好处是惰性计算,不会一下子占用太多内存。 集合推导式 这个和列表推导式很类似,只是开始符号和结束符号变成了{}。 {x**2 for x in [1,2,3,4,1,2,3] if x != 1} ==>{16, 9, 4} 字典推导式 符号:{} 处理结果k:v #e 继续阅读 >>


李余通 18/04/22 10:23:44
注:感谢 美团点评技术团队 的分享~~,博客部分内容摘抄自其中。侵删! 今天我们来探究一下 HashMap 的内部实现机制。 明确 JDK 1.8 中的 HashMap 使用数组 + 链表 + 红黑树的结构进行实现。 HashMap 的底层思想主要是哈希表,我们来看看 Java 的设计者们是怎么使用数组 + 链表 + 红黑树设计出 HashMap 的。 HashMap的基本属性 既然是用哈希表进行实现,那么基本的数据结构就是数组了,HashMap 部分源码如下: public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable { transient Node<K,V>[] table; // HashMap 底层数据结构(Node 数组) transient int size; 继续阅读 >>


董恒毅 18/04/20 21:55:40
这个我是感觉在思路上没有那么复杂啦,参考书上的提示应该能够自己写出来,就直接上代码了 #include<iostream> #include<memory> #include<utility> #include<string> #include<algorithm> //Equivalent to " vector<string> " class StrVec{ public: StrVec():elements(nullptr),frist_free(nullptr),cap(nullptr){ } StrVec( const StrVec & ) ; StrVec( const std::initializer_list<std::string> & ) ; StrVec& operator=( const StrVec & ) ; 继续阅读 >>


刘生玺 18/04/19 19:17:33
为什么写? 很好奇为什么这个东西有那么难吗?于是就花了点时间探索一下 若n未知或已知 使用写轮眼复制书上代码 顺便一说书上的代码十分的难看,好孩子们不要学。 #include<stdio.h> void main() { int i; long int f, f1=1, f2=1; printf("%10ld%10ld", f1, f2); for(i=3;i<=50;i++) { f=f1+f2; printf("%10ld", f); f2=f; } } 使用迭代 #include<stdio.h> long long fibonacci(unsigned int n) { long long rv[] = { 1, 1 }; for (int i = 2; i < n; i++) { rv[1] += 继续阅读 >>


娄泽豪 18/04/19 13:10:26