摘要:描述: 尼姆博奕(Nimm Game),有n堆石子,每堆石子有若干石子,两个人轮流从某一堆取任意多的物品,规定每次至少取一个,多者不限。取走最后石子的人获胜。 标准解法: 判断: 先计算先手是必胜还是必败: 将每堆石子的数量做二进制异或(即用二进制表示,每个数字的第一位做异或;第二位做异或...),
阅读全文
摘要:简介: ICG游戏:Impartial Combinatorial Games,公平的组合游戏。 以下是定义,来自网络,可能不够严谨: 1、两名选手;2、两名选手轮流行动,每一次行动可以在有限合法操作集合中选择一个;3、游戏的任何一种可能的局面(position),合法操作集合只取决于这个局面本身;
阅读全文
摘要:描述: 实现.和*号匹配,*表示前面字符0~无穷个,.表示任意一个字符。 要求全部,匹配,不是部分匹配。 解决: 思路类似最长公共子序列, dp[i][j] = dp[i - 1][j - 1], 如果s[i] == p[j] || p[j] == '.' dp[i][j - 2], 如果p[j]
阅读全文
摘要:描述: 题目给个矩阵,每个点有个权重,左上到右下,只能往右或下走,求最小路径。 解决: dp[i][j] = min(d[i -1][j], dp[i][j - 1]) + dp[i][j] 更新一遍即可,改为一维。 注意,在原数组的基础上改不是很好,自己定义个数组存就可以了。
阅读全文
摘要:描述: 从左上角走到右下角,中间可能有若干阻碍; 题目给出一个矩阵,0表示可以走,1表示有障碍。 解决: 思路同第一题,只是如果上面或左边有障碍,自身不一定能走,注意些边界条件即可,复杂度仍是m*n。 为了防止和真正的路径1冲突,走过的障碍改为-1。
阅读全文
摘要:描述: m*n的矩阵,从左上角走到右下角,只能向下或向右走。 解决: 简单dp,dp[i][j]表示到i,j这点总共多少种路径。 dp[i][j] = dp[i][j - 1] + dp[i - 1][j],化为一维: 注意,1*1的化结果是1的,如果别的题目是0,初始化里i改为从1开始即可。 也可
阅读全文
摘要:简介: 线程和进程都是抢占式的,即系统调配,有一定时间片; 而协程则是程序自己安排执行顺序,可以主动让出CPU,系统是不知道的,在lua等脚本语言中都有机制。 使用协程的几种方法: yield 注意协程关键是程序自己安排执行顺序,函数可以通过yield让出执行权。 greenlet greenlet
阅读全文
摘要:描述: 7 1 7 3 5 9 4 8 输出4 最长递增子序列为1 3 5 9,不必连续。 解法: 三种思路: 转化为最长公共子序列(n^2),动态规划(n^2),不知叫什么解法(nlogn)。 解法一:转化 先排序nlogn,在最长公共子序列 解法二:动态规划 dp[i]定义为,以此数为终点的最长
阅读全文
摘要:描述: 给定两个字符串,求其最长公共子序列(不用连续), 输入: abc bcc programning content 输出: 2 2 解法: 动态规划。 定义dp[i][j]表示s1到i索引,以及s2到j索引为止的最长公共子序列, 则定义如下: dp[i][j] = dp[i - 1][j -
阅读全文
摘要:描述:输入,行数,之后接数据,第一行一个数据,之后每行加一。5 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5思路:简单动态规划问题。dp[i][j]定义为到这个数为止(包括这个数)的最大和,则:dp[i][j] = max(d[i-1][j-1], d[i-1][j]),未考虑边界条件
阅读全文
摘要:开源许可证GPL、BSD、MIT、Mozilla、Apache和LGPL的区别 以下是上述协议的简单介绍: BSD开源协议 BSD开源协议是一个给于使用者很大自由的协议。基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布。但”为所欲为”的前提当你
阅读全文
摘要:粗体表示推荐,也许对每个人不同。 Ctrl-A 相当于HOME键,用于将光标定位到本行最前面 Ctrl-E 相当于End键,即将光标移动到本行末尾 Ctrl-B 相当于左箭头键,用于将光标向左移动一格 Ctrl-F 相当于右箭头键,用于将光标向右移动一格 Ctrl-D 相当于Del键,即删除光标所在
阅读全文
摘要:买个域名,多少钱的都有,看自己喜欢,可以去万网,ali嘛. 一般在windows,下载gitbash(配置公钥,全局用户名和email),node.js(不用配置). 新建github项目,添加公钥(如果重新生成公钥,需要点击y). 在github项目中使用博客,项目后缀记得是.github.io,
阅读全文
摘要:基本概念: 作业周转时间(Ti)=完成时间(Tei)-提交时间(Tsi) 作业平均周转时间(T)=周转时间/作业个数 作业带权周转时间(Wi)=周转时间/运行时间 响应比=(等待时间+运行时间)/运行时间 基本概念: FCFS(first come first server) FCFS(first
阅读全文
摘要:首先适应算法: 当接到内存申请时,查找分区说明表,找到第一个满足申请长度的空闲区,将其分割并分配。此算法简单,可以快速做出分配决定。 首先适应算法: 当接到内存申请时,查找分区说明表,找到第一个满足申请长度的空闲区,将其分割并分配。此算法简单,可以快速做出分配决定。 最佳适应算法: 当接到内存申请时
阅读全文
摘要:先进先出算法(FIFO): 先进先出算法(FIFO): 时间片轮转算法(RR,round robin): 时间片轮转算法(RR,round robin): 最高优先级算法(HPF): 进程调度每次将处理机分配给具有最高优先级的就绪进程。最高优先级算法可与不同的CPU方式结合形成可抢占式最高优先级算法
阅读全文
摘要:进程: 是具有一定独立功能的程序关于某个数据集合上的一次运行活动. 是系统进行资源`分配和调度`的一个独立单位. 地址空间:处理器位数有关,32位则为4G.(40位为1T) 进程: 线程: 是进程的一个实体. 是CPU调度和分派的基本单位. 私有的包括: 程序计数器,一组寄存器和栈. `共享所属进程
阅读全文
摘要:FIFO(first in first out) 选择最先进入内存的页面予以淘汰 FIFO(first in first out) 选择最先进入内存的页面予以淘汰 LFU(least frequently used,历史访问频率) 选择到当前时间为止被访问次数最少的页淘汰 LFU(least fre
阅读全文
摘要:1. 先来先服务(FCFS): 是按请求访问者的先后次序启动磁盘驱动器,而不考虑它们要访问的物理位置. 1. 先来先服务(FCFS): 是按请求访问者的先后次序启动磁盘驱动器,而不考虑它们要访问的物理位置. 2. 最短寻道时间优先(SSTF,Shortest Seek Time First): 让离
阅读全文
摘要:介绍: 介绍: 用管道来输入输出字符串,经tr处理,主要用于删除,替换,压缩。 用管道来输入输出字符串,经tr处理,主要用于删除,替换,压缩。 参数: -c: 取指定字符集的补集,注意,对原集合不影响,用户后续删除操作等。 -d: 删除集合,可以和-c组合,如-d -c [0-9],表示删除非0-9
阅读全文
摘要:去掉文件里调试和符号信息,文件大小变小,一般在发布的时候使用。 主要作用于可执行文件,动态库,目标文件等。 可参考:http://blog.csdn.net/stpeace/article/details/47090255
阅读全文
摘要:centos下yum lock的解决办法 Another app is currently holding the yum lock; waiting for it to exit... 解决办法: rm -f /var/run/yum.pid
阅读全文
摘要:centos6与centos7,防火墙,开机自启不同 centos6与centos7,防火墙,开机自启不同 6用iptables,7用firewall-cmd http://www.cnblogs.com/liyuanhong/articles/7064582.html 6用chkconfig,7用
阅读全文
摘要:关于GPT硬盘和MBR硬盘的区别: GPT硬盘能识别2T以上硬盘. 注意GPT转MBR的话,使用diskgenius免费版的话,需要先删除所有分区. 关于GPT硬盘和MBR硬盘的区别: GPT硬盘能识别2T以上硬盘. 注意GPT转MBR的话,使用diskgenius免费版的话,需要先删除所有分区.
阅读全文
摘要:(1)管道(Pipe):管道可用于具有亲缘关系进程间的通信,允许一个进程和另一个与它有共同祖先的进程之间进行通信。 (2)命名管道(named pipe):命名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关 系 进程间的通信。命名管道在文件系统中有对应的文件名。命名管
阅读全文
摘要:sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak #备份 sudo vim /etc/apt/sources.list #修改 sudo apt-get update #更新列表 阿里云源 deb http://mirrors.aliyu
阅读全文
摘要:主要参考:http://blog.csdn.net/firebird321/article/details/48528569 主要参考:http://blog.csdn.net/firebird321/article/details/48528569 1.下载源码 去http://llvm.org/
阅读全文
摘要:首先系统上得有,只是路径问题 可使用ldd查看可执行程序的依赖库 以下都需要超级权限: find / -name libnet.so.9 // 可能在/usr/lib或/usr/local/lib中 vim /etc/ld.so.conf // 把动态库路径加到最后一行 执行ldconfig 参考:
阅读全文
摘要:这个错误换句话说: 链接的时候找不到实现的文件(谨记从这个入手!). 可能导致的原因有: 1. 没有链接库文件,包括静态库或动态库. 2. 链接文件的顺序问题,先后依赖问题,把被依赖的放后面. 3. C++中使用了C文件编译的库,指那些自己实现的,如UNP书的库,需要使用extern"C"{ ...
阅读全文
摘要:Base a(); //并不是构造,而是声明一个函数;调用默认构造是Base a; 函数中分配内存,使用二级指针,否则会释放.
阅读全文
摘要:1. 重载(overload): 同名异参同域(如同类中),virtual可有可无.2. 覆盖(override): 同名同参有virtual,不同类,派生覆盖基类.3. 隐藏: 同名不同参异域(如基类和派生类),不管有无virtual(意图可能是为了把责任交给子类). 同名同参没有virtual.
阅读全文
摘要:int strcmp(const char *str1,const char *str2) { /*不可用while(*str1++==*str2++)来比较,当不相等时仍会执行一次++, return返回的比较值实际上是下一个字符。应将++放到循环体中进行。*/ while(*str1 == *str2) { if(*str1 == '\0') ...
阅读全文
摘要:strcpy函数实现: char* strcpy(char* des,const char* source) { char* r=des; assert((des != NULL) && (source != NULL)); while((*des++ = *source++)!='\0') ; /
阅读全文
摘要:参考:http://stackoverflow.com/questions/29347790/difference-between-ioerror-and-oserror 在3.x版本已经移除,剩下OSError,其实两者差别几乎没有, 常见,open函数是IOError,其他如os.remove,
阅读全文
摘要:如果使用const全局变量,记得声明处的引用处都加extern。 uint32_t等,t代表是typedef的,在stdint.h头文件里,C99后引入,记得先测试再用。 accept函数的参数,记得初始化,否则可能出错。
阅读全文
摘要:常用组件 常用组件 Value: 支持的类型,null,int,uint,double,string(utf-8),bool,array,object Value: 支持的类型,null,int,uint,double,string(utf-8),bool,array,object Writer:
阅读全文
摘要:1. 安装git: sudo apt-get install git git config --global user.name "Your Name" git config --glocal user.email "Your email" 使用global,表示主机所有git都使用这个name,e
阅读全文
摘要:Value构造 Value对象最好先声明后初始化,如果声明直接初始化可能出错。 rapidjson::Value a; a = val[i]; Value构造 Value对象最好先声明后初始化,如果声明直接初始化可能出错。 Value传参 Value传参,最好显式使用右值,如std::move,或使
阅读全文
摘要:获取输入,计算,输出.不做多余的事情,清楚格式. 每行输出以换行符结束,包括最后一行. 解决问题用最直接的,不要炫技.(KISS,keep it simple and stupid) floor(x),取不大于x的最大整数,floor(x+0.5)四舍五入. 常用: floor(sqrt(n)+0.
阅读全文
摘要:在开发源工具解决Oracle中的问题时,必须了解TNS协议。在努力理解TNS协议的时候,Oracle JDBC驱动程序(classes12.zip)会是一个很有用的资源TNS头。 每个TNS包都有一个8字节的包头。包最前面的两个字节用来表示包的长度–不包括包头的大小。和所有的值一样,大小是大端字节的
阅读全文
摘要:转自:http://jingyan.baidu.com/article/c74d60009d992f0f6a595de6.html 背景: ubuntu14.04/64位 为了抓包和分析包 转自:http://jingyan.baidu.com/article/c74d60009d992f0f6a5
阅读全文
摘要:1. 安装: sudo apt-get install tftp-hpa tftpd-hpa ps: tftpd是服务器,tftp是客户端,客户端能发送和获取,服务器不能动. 1. 安装: 2. 配置文件: sudo vim /etc/default/tftpd-hpa 修改为如下内容: TFTP_
阅读全文
摘要:使用14.04,16.04 安装fcitx: sudo apt-get install fcitx libssh2-1 安装搜狗输入法: http://pinyin.sogou.com/linux/ 在设置中语言结构为fcitx,注销,在输入法中添加(注意,添加时,看看选项:只显示当前使用语言.)
阅读全文
摘要:安装virtualbox增强功能 在Windows下新建文件用于共享,点设置->共享文件夹->添加共享文件,制定路径和名称(名称用于Linux中挂载使用)(选择固定分配) 在Linux中mount -t vboxsf ShareFolderName /mnt/shared/,其中,前者是步骤2中的共
阅读全文
摘要:安装sudo apt-get install openssh-client openssh-server 使用scp命令: scp john@~/hallo.h /usr/include 将左边移动到右边,如果是文件夹加个-r递归,其他参数看手册. 注意: 确定服务有开启: ps -aux | gr
阅读全文
摘要:安装vmtools就行了:在虚拟机点击重新安装vmtools. 在虚拟机里点开挂载的,将那个压缩文件拉出document,解压 在命令行sudo运行.pl结尾的文件,一路回车就行了. 重启即可.
阅读全文
摘要:折叠:ctrl+k,ctrl+1->第一层折叠, ctrl+k,ctrl+j展开. alt+shift+2:二分屏
阅读全文
摘要:主要是磁盘接口不匹配,调整CD/DVD和硬件磁盘接口, CD/DVD调整成IDE,硬盘调整成SATA即可. 提示system not found,主分区没有激活,进入disgenius,会提示修正,保存重启即可.
阅读全文
摘要:Windows下: 参考这个网站,没什么问题,注意MTd这些选对就行了. http://www.cppblog.com/wanghaiguang/archive/2013/12/26/205020.html Linux下: 安装Python,安装scons 解压压缩包后,scons platform
阅读全文
摘要:CentOS: http://blog.csdn.net/wuapeng/article/details/51728614 rpm -Uvh http://www.elrepo.org/elrepo-release-6-6.el6.elrepo.noarch.rpm 除了内核,可能是设备映射库: y
阅读全文
摘要:主要参考http://blog.csdn.net/q894523017/article/details/50705392 包去官网下载,解压,安装步骤如下: 上文中有错误,正确如下: sudo dpkg -i mysql-common_5.7.10-1ubuntu14.04_amd64.deb su
阅读全文
摘要:安装Windows通用步骤,分区,重建分区表,重写MBR引导。安装即可。 VMware安装Windows 如果进不了CM/ROM,在.vmx文件里: 加入一行:bios.forceSetupOnce = "TRUE" ;开机就自动进入BIOS,但只有一次。 victualbox,能进CD/ROM,直
阅读全文
摘要:一些基础 安装的时候,先不选镜像就可以避开简易安装. 更改root密码:sudo passwd root 更改源,更新,不行就打断在更新 安装vim 改为unity模式,安装VMware Tools,参考http://blog.csdn.net/gongyuan073/article/details
阅读全文
摘要:添加用户到sudo. 打开/etc/sudoers 找到root ALL=(ALL) ALL这一行,在后面再加上一行就可以了(不用引号): username ALL=(ALL) ALL 注意,都用tab分割. 改镜像源 CentOS 6 wget -O /etc/yum.repos.d/CentOS
阅读全文
摘要:配置网络 如果是克隆CentOS的: vi /etc/udev/rules.d/70-persistent-net.rules 注释掉网络eth0,把最后一个改为eth0,记录下mac地址。 vi /etc/sysconfig/network-scripts/ifcfg-eth0 HWADDR=00
阅读全文
摘要:以下转载自:http://www.linuxidc.com/Linux/2015-01/111956.htm 以下转载自:http://www.linuxidc.com/Linux/2015-01/111956.htm 安装 安装软件包: sudo apt-get install subversio
阅读全文
摘要:1、安装epel扩展源:“sudo yum install epel-release” 2、安装python-pip:“sudo yum install python-pip” 3、升级pip:“sudo pip install --upgrade pip” 4、安装requests包:“sudo
阅读全文
摘要:官网解释很清楚:https://www.gitlab.com.cn/installation/ 如果安装很慢的话,原因应该是外国源,可用清华的源: 官网解释很清楚:https://www.gitlab.com.cn/installation/ 如果安装很慢的话,原因应该是外国源,可用清华的源: 直接
阅读全文
摘要:kv数据库 C语言写的 可内存可持久化 只有5中数据结构 string,hash,set,zset,list 键,任一对象都拥有的属性,即便是string。 注意:5种数据结构都有键,可理解为their name。 五种结构讨论: zset是有序集合,唯一,分数可重复(也许因为精确度问题)。 lis
阅读全文
摘要:说明 很多操作是默认,具体定制另说. 说明 很多操作是默认,具体定制另说. 安装 参考http://www.linuxidc.com/Linux/2014-02/97374p4.htm 这篇是上面那篇的整合版:http://www.cnblogs.com/mophee/archive/2013/06
阅读全文
摘要:登录 登录 1. 三次登录认证 服务器问候,服务器发送自己信息. 登录认证,客户端发送自己账号密码. 登录结果,成功则为OK包. 注意,这三次算是一次会话,包序号为1,2,3. 1. 三次登录认证 服务器问候,服务器发送自己信息. 登录认证,客户端发送自己账号密码. 登录结果,成功则为OK包. 注意
阅读全文
摘要:修改mysql.user表 以root或debian-sys-maint身份登录mysql 如果root用户连不上,可以新建用户(建议不要用root用户连): mysql>create user user_name identified by 'password123456'; $ mysql -u
阅读全文
摘要:http://www.cnblogs.com/jevo/p/3314928.html 用replace代替delete和insert。 insert用批量。 用延迟(类似于缓冲,会否饿死) 大量插入,可锁表 从文件加载(为何不需更新表) http://www.ihref.com/read-16422
阅读全文
摘要:方式 有几种方式,最常见是B树。还有哈希 方式 有几种方式,最常见是B树。还有哈希 使用场合 select或update等带有where时都可以,索引帮助where快速过滤。 使用场合 select或update等带有where时都可以,索引帮助where快速过滤。 适合数据类型 MySQL支持很多
阅读全文
摘要:mongo嗅探器 在更高版本被mongoreplay取代。 mongo嗅探器 在更高版本被mongoreplay取代。 安装: 在Ubuntu直接apt-get install mongodb即包含有。 安装: 在Ubuntu直接apt-get install mongodb即包含有。 使用方法 直
阅读全文
摘要:1. 进入数据库: use admin db.addUser("foo","foo"); ps:高版本用db.createUser创建。 1. 进入数据库: use admin db.addUser("foo","foo"); ps:高版本用db.createUser创建。 2. 改配置 如/etc
阅读全文
摘要:删除数据时,由于缓存关系,数据了文件大小不会一下子减小,可以通过执行vacuum;或新建表时使用自动整理大小来实现. sqlite的大小理论上可以达到140T. 暂时,使用C的api,只能使用不是.开头的命令,vacuum;也可以. 查看表结构,既可以用.schema也可以用select * fro
阅读全文
摘要:背景: 版本: libevent 2.1.6beta 背景: 版本: libevent 2.1.6beta linux下: 按照github官方做法: $ sudo apt-get install openssl $ mkdir build && cd build $ cmake .. # Defa
阅读全文
摘要:1. 通用套接字地址结构: 1. 通用套接字地址结构: 1.1 概念: 套接字有几种类别,都可以放进通用套接字的容器中. 意即,具体的套接字是在通用套接字的基础上细化. 1.1 概念: 1.2 结构体如下: struct sockaddr{ uint8_t sin_len; unsigned sho
阅读全文
摘要:1. 字节排序函数: 1. 字节排序函数: 1.1 大端小端: 参考其他笔记或资料,一句话:低地址低位为小端. 1.1 大端小端: 1.2 常用函数: #include <netinet.h/in.h> uint16_t htons(uint16_t va); uint32_t htonl(uint
阅读全文
摘要:1. socket函数: #include <sys/socket.h> int socket(int family, int type, int protocol); 1. socket函数: 1.1. 参数: 第一个参数指定协议族(我理解为ip族): AF_INET,AF_INET6 第二个参数
阅读全文
摘要:非阻塞io 使用fcntl设置,先GETFL操作,取得后逻辑与,在SETFL 一般直接返回EWOULDBLOCK. 对已connect: 可能立即返回,比如在同一机器上时. 当连接成功时,描述符可写;当连接错误时,描述符既可读又可写.(tcpv2,530页) 管理缓冲区很复杂,比select+阻塞快
阅读全文
摘要:在三次连接完成后,accept调用前,客户机发来RST. Berkeley实现将完全在内核中处理,不通知. 而SVR4实现将返回一个错误EPROTO,而POSIX指出应该是ECONNABORTED,后面将补充解决方法. 如果服务器进程终止,而如果客户端对于套接字和用户输入两个源,只监听其中一个,则会
阅读全文
摘要:当有子进程时,子进程终止时会返回SIGCHLD信号,默认忽略,此时会有僵尸进程. 处理方法: 捕获信号,并waitpid. 当慢系统调用被中断时(如信号中断),有些系统不会自动重启调用,此时系统调用可能返回一个EINTR错误.需要检测并重启系统调用.但connect函数不能重启,调用select.
阅读全文
摘要:五种:阻塞,非阻塞,IO复印,信号驱动,异步. 五种:阻塞,非阻塞,IO复印,信号驱动,异步. select,poll,epoll select: 典型用32个32位的整数表示1024个描述符,并发的局限. poll:功能同上,但数据结构不一样(链表),描述符不限制,只支持水平触发. epoll:数
阅读全文
摘要:三次握手基础: tcp三次握手是同步双方序列号和窗口大小的过程. 三次握手基础: 三次的原因: 一次肯定不行,C不知道是否连接成功,发送数据则错误. 两次的话存在一个问题: 已过期的连接包再现,S会回复确认并以为连接成功. 三次的话,过期的包,由于C并未发起连接,C就不会回复. `总结: 防止已失效
阅读全文
摘要:概括: 主要来源于unp,可参考:http://blog.csdn.net/ysu108/article/details/7764461 概括: 主要来源于unp,可参考:http://blog.csdn.net/ysu108/article/details/7764461 疑惑: 疑惑: 1. 最
阅读全文
摘要:TIME_WAIT状态: 主动关闭的那端最后经历的状态,一般为2MSL秒(1~4分钟). TIME_WAIT状态: 两个原因: 保证当最后一个ack丢失后,能收到对端重传的fin包. 保证ack包消失,不会影响下一个连接. 关于原因2: 重传时间一般为几百毫秒,而延时的数量级可能为几十秒(MSL数量
阅读全文
摘要:想进行ftp相关编程,得了解ftp的指令集. 可参考:http://blog.csdn.net/weiyuefei/article/details/51758288 ftp的命令和指令集不同: 命令是面向用户的,控制台输入的. 指令集是应用层的协议内容. ps: ftp使用ls,传输文件命令都会另开
阅读全文
摘要:常用三种协议:ssh, git, http 常用三种协议:ssh, git, http ssh协议: 使用ssh传输,安全,可授权,需要用ssh登录,一般使用添加秘钥的方式。搭建方便。 ssh协议: 使用ssh传输,安全,可授权,需要用ssh登录,一般使用添加秘钥的方式。搭建方便。 git协议: 使
阅读全文
摘要:原因: 1. 利于编译器优化,比如QT中的隐式数据共享,也利于编译器检查约束。 2. 避免if a*b = c等意外行为。
阅读全文
摘要:包括内置类型,对象。 但问题是不同编译单元之间的初始化。 指全局对象,如static等。 不可能确定其初始化顺序。 可以用单例,如在函数里返回函数static成员的引用。 只在第一次调用时初始化。 注意:多线程调用,最好在启动时一起初始化。调用时内部加锁,这是一种方案。 总结:手工初始内置类型。构造
阅读全文
摘要:原因: 1. 追踪困难,由于在编译期已经替换,在记号表中没有。 2. 由于编译期多处替换,可能导致目标代码体积稍大。 3. define没有作用域,如在类中定义一个常量不行。 做法: 可以用const发挥常量的作用。 enum也可:取enum定义的变量地址不合法,取宏也是;而取const变量则合法。
阅读全文
摘要:C++是门多范式语言,至少包括面向过程,面向对象,泛型,函数式,元变成等。 但谨记,不要随意混合使用各种特性,为自己制定使用原则,针对不同项目、业务。 如: 类C风格编程:没有模板,没有异常,没有重载等。 面向对象:封装,继承,多态等。 模板编程:一般用于底层库的编写,大量使用模板。 STL:有自己
阅读全文
摘要:这是需要仔细分辨的几个概念. 这是需要仔细分辨的几个概念. 元表:相当于table的隐藏属性. 只有固定的一些方法,如__index,__tostring,__add等,称为元方法. 虽然是固定的,但是任何table都可以作为任何值的元表,实际只会赋值对应的值. 元表:相当于table的隐藏属性.
阅读全文
摘要:Fundamental 一切来源于:sys.exc_info 返回一个元组->三个对象,异常类型,异常值,tb对象->tb对象包含位置信息。 Fundamental 一切来源于:sys.exc_info 返回一个元组->三个对象,异常类型,异常值,tb对象->tb对象包含位置信息。 def func
阅读全文
摘要:高级用法,文件流发送:http://docs.python-requests.org/zh_CN/latest/user/advanced.html#advanced 高级用法,文件流发送:http://docs.python-requests.org/zh_CN/latest/user/advan
阅读全文
摘要:压缩,文件操作,数据库,md5,json, 压缩,文件操作,数据库,md5,json, 压缩 压缩 import os, sys, time import zipfile # 解压 filename = 'callofdutyblackopszombies_1349649132343_my.zip'
阅读全文
摘要:总结: 总结: time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f") 几个概念 时间戳:整型或float time对象,datetim
阅读全文
摘要:文件读写:f.seek如果偏移超出文件大小,会报错:IOError: invalid argument。从提示...完全看不出问题在哪!:-) subprocess模块:p.poll(),查看进程是否结束,没有结束返回None,结束了返回0
阅读全文
摘要:简单使用 可以使用designer的一个模式定义,也可以自己定义,在__init__函数里,self.btn.clicked.connect(self.text.clear)。 注意:槽不用加括号,可是lambda对象等,connect最好在初始化函数里避免多次连接。 简单使用 可以使用design
阅读全文
摘要:在Windows安装,直接pip install python_qt5,针对Python2.7版本的。 测试,不报错即可。 在Windows安装,直接pip install python_qt5,针对Python2.7版本的。 测试,不报错即可。 import sys from PyQt5 impo
阅读全文
摘要:strPath = 'E:\新建文件夹' #含有中文的路径,使用unicode函数转换. strPath = unicode(strPath , "utf8") 参考:http://blog.csdn.net/qingyuanluofeng/article/details/49021711 json
阅读全文
摘要:我遇到的情况: 二进制程序调shell再调Python后,shell退出,Python进程挂到init上(不是僵尸进程),但 此时二进制程序未退出,这时候中断而二进制程序出现此提示。 经查询: 应该是Python程序的stdout出错,最好输出到文件,不要输出到stdout。 其次,也可以忽略此信息
阅读全文
摘要:os.system(cmd) 函数返回cmd的结束状态码,阻塞调用。 os.popen(cmd) 函数返回cmd的标准输出,阻塞调用。 (status, output) = commands.getstatusoutput(cmd) 函数返回cmd的结束状态码和标准输出,阻塞调用。 subproce
阅读全文
摘要:相似性 从某个角度来讲,类和模块些许相似性。 你可以在模块中封装私有方法,都是import一个对象后调用其中方法。 在写一组接口时是应该封装成类还是模块? ps:如果把两者看成对象来操作,模块可以实现类似类的很多功能,但不建议随意修改底层魔法方法。 区别 类的特性:继承特性,重载等 模块:类似类的单
阅读全文
摘要:如果在模块中定义了全局变量,注意: 如果别人用from *方式导入,则可能命名冲突。 在模块中使用时,如果是赋值,需要先global;如果直接使用,则可以不用。因为Python先从局部变量找(locals),找不到才找全局(globals)。
阅读全文
摘要:可用signal模块 用dir(signal)模块查看信号 其中kill信号是不能捕获的,其他程序结束符号可以捕获。 ps:所以平时kill的时候尽量不要kill 9,先给个机会处理后事。 Python中的对应信号是signal.SIGINT,signal.SIGTERM等。 ps:wing5.1中
阅读全文
摘要:可手动设置断点: pdb.set_trace() 到了相应断点后,可输入: bt查看栈 n,l,p, s进入函数 b设置断点 有点鸡肋...
阅读全文
摘要:闭包,有点类似类。 例子:有自己内部变量的函数 def transaction(): sqls = [] def insert(sql): sqls.append(sql) def update(sql): sqls.append(sql) def commit(): conn = self.__g
阅读全文
摘要:集合 线性结构,集合无序,不可索引和切片。 可用set('abc')等方式生成 可用操作: 集合 线性结构,集合无序,不可索引和切片。 可用set('abc')等方式生成 可用操作: <,>,>=,==,!= :指结合的子集,超集等(注意,此处a>b和a < b都为False,不能说明其相等) |,
阅读全文
摘要:用_或__,一或两个下划线都可以。 在类中,用两个下划线,在外部,用一个下划线。 但前后都有两个下划线的是魔法方法,是公有的。 不知有什么黑科技能窃取呢?
阅读全文
摘要:两种不完美的方式: 两种不完美的方式: 用locals,globals 用locals获取变量列表,再遍历比较对象。 用locals,globals 用locals获取变量列表,再遍历比较对象。 def namestr(obj): ns = globals() return [name for na
阅读全文
摘要:手段有多线程,多进程,协程。 对于多线程: 由于GIL(全局解释器锁)的存在,多线程实际是单线程的,不能发挥多核的作用: 但对于IO密集型程序,多线程对于效率是有提高的,由于阻塞时,可能会切换到别的线程;但,阻塞时不会马上切换,要等待时间片结束才切换。 而CPU密集型则不适用,线程上下文切换浪费CP
阅读全文
摘要:QT中许多C++类使用了隐式数据共享,最小化资源拷贝。当作为参数传递时,实际只传递了指针,这是底层完成的,程序员无需担心,即使是在多线程中,从Qt4开始; 记住,尽量使用const迭代器,vector访问使用at。 在C++中,给数据加上合理的约束利于编译优化。
阅读全文
摘要:参考: 简单例子: http://www.cnblogs.com/MuyouSome/p/3515941.html 基本了解: http://blog.csdn.net/harbinzju/article/details/10813635 详细例子: http://blog.chinaunix.ne
阅读全文
摘要:同样要注意new和delete的问题; is not a member of QApplication:这个错误可能是找不到信号或槽函数; 想用到信号槽,必须至少继承QObject类,并在类第一行写上Q_OBJECT,moc将处理每个Q_OBJECT,但只在头文件有效,所以最好写在头文件里;
阅读全文
摘要:基本模块: QT core QT gui QT widgets QT multimedia QT webkit 浏览器引擎 QT network QT sql QT test 单元测试 QT webview 不用浏览器查看网页,预览阶段,5.5版本中出现 QT canvas 3D 使用openGL等
阅读全文
摘要:Qt项目配置的部分字段: 库: LIBS += -L /usr/local/lib -lpcap INCLUDEPATH += /usr/local/include/
阅读全文