自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

davidsu33的专栏

To be or not to be, It's a problem!!!

  • 博客(529)
  • 资源 (13)
  • 收藏
  • 关注

原创 CCTexture2D CCSpriteBatchNode CCTextureCache CCSpriteFrameCache 分析

CCTexture2D 是对OpenGL中二位纹理的类包封,可以通过图片和内存数据来生成对应的二维纹理,实际的纹理图片可能会比生成的纹理图片要小,生成的纹理图片的大小为不小于其大小的2的N次方。还需要注意的是生成的纹理内容与纹理图片是倒着的。所以在纹理对应坐标的时候咱们需要将Y轴倒过来,否则纹理图片的对应会出错。CCSpriteBatchNode是对CCSprite节点的批处理,可以对

2013-08-12 21:31:44 1375

转载 linux下fread/read和fwrite/write

1,fread是带缓冲的,read不带缓冲.2,fopen是标准c里定义的,open是POSIX中定义的.3,fread可以读一个结构.read在linux/unix中读二进制与普通文件没有区别.4,fopen不能指定要创建文件的权限.open可以指定权限.5,fopen返回指针,open返回文件描述符(整数).6,linux/unix中任何设备都是文件,都可以用open,read.如果文件的大小...

2018-03-09 14:57:49 1421 1

转载 apt-get install失败后强制跳过的方法,修改/var/lib/dpkg/info下的安装前后shell脚本

使用apt-get出现问题,错误信息大概如下The package <package-name> needs to be reinstalled, but I can't find an archive for it.用 apt-get install -f 无法修复.考虑一下报错信息,应该是apt对之前失败的某次安装A念念不忘,并且在安装其他东西之前会重新安装这个程序A.(这个和正常...

2018-02-24 11:18:33 5998

原创 不要在构造函数和析构函数中调用虚函数

提到构造函数和析构函数,想必大家肯定是非常了解,但是能否在构造函数或是析构函数中调用虚函数呢?答案是千万不要这么做,这么做不会得到大家想要的结果。首先提一下构造函数,构造函数的顺序是从基类开始构造->子类,如果在基类中调用虚函数,由于构造函数基类中仅存在自身(或其父类,如果存在),不会根据虚函数表的规则去调用。看如下例子class Base {public:   Base(

2018-01-12 11:28:32 1706

原创 在Makefile中使用shell命令的注意事项

Makefile文件的处理格式目标: 依赖项(可以是多个,可以写成多行,但是要以\作为续航符)[tab符]执行命令执行的Shell命令在用到变量引用的时候需要对"$"符号进行转义,需要写两个"$$"符号来转义成"$"符号例如如下for循环的例子中,就连awk中的变量引用也需要使用两个"$"符号来进行转义#自动循环c文件生成目标CC = gccSRCS =

2017-11-24 14:43:54 1726

原创 Lex & Yacc

Lex和Yacc学习过程中遇到的几个问题1.在Lex中表述空格,空格的表述得使用[ ] 或者 " " ,不可以直接写空格,否则是匹配不了的。2.在同时使用Lex和Yacc的时候,如果我们不想编写main函数或者相关的配套函数,   例如Lex的yywrap,Yacc的yyerror等,我们可以直接使用Lex或者Yacc提供的链接库   -ll 和-ly ,但是特别要注意的是,此处特

2017-11-20 14:59:39 566

原创 Qmake

Qmake的用法 1.变量的使用 Qmake提供了很多的内置变量,主要包含了项目构建相关的变量以及Qt自身相关变量,详细可以参见qmake Variable Reference,Qt也提供供了一些内置工具变量,这些变量可以在qmake生成的Makefile中看到,例如拷贝和 删除命令 QMAKE_COPY QMAKE_DEL等。 Qmake也提供了一些Qt自身环境的变量,这些变量可以通过qm

2017-08-29 15:10:16 984

原创 Qmake recursion

Qmake递归Qmake的对象可支持任意深度,Qmake的函数调用可以支持递归(不能超过深度100次调用)超过一百次认为是死循环会报错a.lib = alib_1 alib_2 SINGLE_MODULE = b c d e f g h i j for(i, SINGLE_MODULE){ #变量符合一个”.”的字符串,请使用$$quote eval($${i}$$quote(.lib

2017-08-29 15:08:32 440

原创 Java的枚举类型

/*! * Java中的枚举类型也是类, * Java中的类都隐含从Object * 派生,Java中的枚举类型都 * 隐含从Enum类派生 * Java的枚举类型一般都是全部大写 * * SMALL,MEDIUM,LARGE.. * 都可以看成是其中一个枚举类型的 * 实例 * * Java Class反射类型,得到类型对象Class * 1..c

2017-08-28 14:48:32 367

原创 jsp生命周期以及基本用法

pageEncoding="utf-8"    %>  <%!中可以定义方法、静态方法和静态属性以及  属性等,但是<%中不可以,而且%中的out指的  并不是System.out而是PrintWriter写到页面的out  实例对象-->      JSP 实例的生命周期                    pri

2017-08-28 09:21:02 421

原创 JavaCore复习

/*! * 继承 * Java和C++继承的区别在于 * 1.Java继承的关键字是extends,C++是: * 2.Java继承只能是公有继承,java没有private,protected继承 * 3.Java继承只能是单继承,多继承采用的方法类似接口实现 */import static java.lang.System.*;/*! * 上课 

2017-08-24 17:31:18 374

原创 计算机系统结构-延迟转移

#include #include #include #include /*! *延迟转移:CPU在执行条件判断的时候为了保证管线的流水,会 * 对指定进行预判执行,如果判断成功则流程继续,否则判断失败 * 会从条件判断正确的地方加载代码到流水管线中执行 * (从数据可见,有时候我们在for循环中使用判断逻辑的时候,如果 * 能增加判断概率是可以提高性能的,

2017-07-13 09:17:10 2571

原创 QEvent的使用注意事项

QEvent主要的借口包含事件类型,事件的来源(可能来源于窗口系统,或者QCoreAplication的sendEvent或postEvent),type() 事件类型spontaneous() 事件的来源accept() 该对象接受处理该事件,ignore() 改对象不接受该事件,会传递给该事件的父类对象来进行处理。QWidget中对于鼠标事件的处理,默认是不接受,所以会出现传递

2017-07-12 13:14:43 815

转载 linux中动态库的编译和加载的查找顺序

Glibc安装的库中有一个名为ld-Linux.so.X其中X为一个数字(版本),在不同的平台上可以通过ldd查看$ldd /bin/catlinux-vdso.so.1 =>  (0x00007fff9176f000)libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f16424d4000)/lib64/ld-linux

2017-07-11 16:40:32 2467

原创 linux下svn环境的搭建

1.下载svn,ubuntu下直接 apt-get install subversion2.创建svn的仓库,新建一个目录例如/home/user/svn_repository,3.在该目录下执行svnadmin create svnwork, 创建一个svn的版本仓库,创建完成之后,svnwork会被创建,svnwork下的目录结构如下  svnwork      |    

2017-07-04 09:10:57 928

原创 QMake的高级用法

使用QMake构建多个定制目标,如下是我写的测试程序,环境Linux (ubuntu) gcc5.4  1 #使用qmake来生成多个目标,也可以将目标直接集成到现有的make对象中  2 #(在生成直接对象的时候,生成其他目标对象)  3   4 TEMPLATE = app  5 CONFIG -= qt app_bundle  6 CONFIG += c++11

2017-06-29 10:30:03 1703

原创 解决ubuntu安装库总是不兼容的问题

因为不小心 apt-get install -f ,导致ubutnu的大量库和组件直接被删除掉,但是发现我安装的ubuntu 16总是安装不了一些库,例如libgl1-mesa-dev libglu1-mesa-dev等等,各种找原因,发现原来是需要更新Ubuntu的源,然后更新apt-get,我现在的源配置如下:# deb-src http://security.ubuntu.com/u

2017-06-28 15:56:56 1306

原创 木桶排序-扑克牌

#include #include #include #include #include #include using namespace std;templatestruct LinkNode{ LinkNode() = default; LinkNode(const T& t):m_data(t){} T m_data{0}; LinkNode*

2017-06-15 14:53:56 430

原创 数据结构-Sort

Sort好好复习了一下,不容易啊...#include #include #include #include #include #include #include #include #include #include #include #include #include /*made by davidsu33 2017-6-14*/#define MAX

2017-06-14 20:11:42 447

原创 xpath中匹配text()中是否含有制定内容的方法

如下图是我需要获取下载地址的链接,使用scrapy的response来截取的代码如下:r = response.xpath('//a[contains(text(), ".mkv")]/@href').extract()

2017-06-11 16:32:27 4091

原创 二叉树的创建和递归遍历

/*!  二叉树的学习以及使用  1.使用字符串构造二叉树  2.二叉树的遍历  made by davidsu33*/#include #include #include #include #include #include using namespace std;struct BNode{    int m_data {-1}

2017-06-01 11:22:46 633

转载 Linux下解决qtcreator中不能输入中文的问题

在Ubuntu环境下用了两天Qt,今天突然发现在Qt 5的代码编辑器里面居然无法输入中文!生成的输入框也同样无法输入中文!在其他软件里面把中文复制过去,调试也没发现有任何显示问题,搜索了一下,原来是输入法框架的问题。再看一下解决办法,各种各样:装软件、复制中文支持文件、写脚本、改系统配置,甚至还有重新编译一个程序来实现的,真是八仙过海,各显牛逼。软件出现漏洞很正常,但是这么有名的产品,我是

2017-05-24 11:15:44 19783 8

原创 使用httpie下载图片

要知道有的时候,直接下载是不行的,需要定制http头信息才可以,所以这里,使用httpie的shell脚本来下载文件#!/bin/bash#采用httpie来下载图片,因为需要处理referer头#made by davidsu33#2017-5-17DOWNLOAD_DIR=~/images/lynGALLERY_LYN=18071INDEX_LYN=2267

2017-05-17 16:10:58 650

原创 windows系统下安装linux双系统(问题解决)

这几天重新安装系统,在安装过程中出现了各种问题,在则里逐一进行记录并说明1.双系统的安装顺序,必须先安装windows,然后在安装linux。2.windows的磁盘分区不能是动态分区,必须是基本分区,否在在linux安装的时候是看不到独立的分区的。(被我碰到了)3.windows的主分区不要超过三个,因为最多目前只能识别4个主分区。(除了windows的c盘之外就不要再分配主分区了)

2017-05-17 13:06:19 873

转载 ubuntu下搜狗输入法的输入框只显示英文不显示中文的问题

我把原来的sogou拼音卸载之后就全部出问题了,系统设置的文本输入也显示不了解决方案: 首先强制更新,把依赖文件全部安装sudo apt-get install -f这之后仍然是不管用,于是,继续度娘,发现原来是搜狗默认的配置出了问题,见如下操作即可完成问题(1)Ubuntu下,搜狗拼音输入法能启动(系统托盘处有图标),但是打不出汉字,打字时选框不正常。

2017-03-16 11:38:45 7626 1

原创 使用bash编写图片爬虫

#!/bin/bashLINKFORMAT="http://img1.mm131.com/pic/%d/%d.jpg"MAX_COUONT=100#download mm gallery,to stop if can't downloadfunction download_gallery(){    if [ ! -d "$1" ];then        #if

2017-03-14 09:12:53 1194

转载 linux shellIO重定向

、基本概念  a、I/O重定向通常与 FD有关,shell的FD通常为10个,即 0~9;  b、常用FD有3个,为0(stdin,标准输入)、1(stdout,标准输出)、2(stderr,标准错误输出),默认与keyboard、monitor、monitor有关;  c、用   d、用 > 来改变送出的数据信道(stdout, stderr),使之输出到指定的档案;  e、

2017-03-02 14:02:10 368

转载 bash下. : () {} [] [[]] (())的解释

bash下有很多像{}、[]等一些符号命令,下面是我对一些常用的符号命令的学习笔记,若有错误或纰漏望各位兄弟指正。一、.(source).(点)与source命令一样,从文件中读取并执行命令,无论该文件是否都有可执行权限都能够正确的执行。且是在当前shell下执行,而不是产生一个子shell来执行(我们通常使用“./filename.sh”去执行一个文件是在当前shell下产生一个子s

2017-02-27 14:34:35 320

原创 bash中if条件语句的使用及bash返回值的注意事项

#!/bin/bash#bash函数以及返回值的注意事项function showgrade(){    if [ ! -z "$1" ];then        echo "Your grade is $1"    else        echo "Invalid call $FUNCNAME"    fi}#学生成绩分类echo "Pl

2017-02-27 09:49:39 2256

原创 bash脚本实现fabnacci函数

#!/bin/bashARGCOUNT=1if [ ! $# -eq $ARGCOUNT ];then    echo "请输入Fibnacci的项数,并自动求和.用法$0 N"fifunction fib(){    one=1    two=1    #bash的循环支持continue语句和break语句    for i in `

2017-02-24 11:26:10 358

原创 awk调用函数

#!/usr/bin/awk -f#例子程序,针对用户名,从/et/passwd中来自动进行查找,并输出相关的信息#awk甚至可以直接定义全局变量g_counter=0;function finduser(name){    posname=5;    posdir=7;    split($0, s, ":");    for(i in s){

2017-02-22 11:13:38 2129

转载 epoll学习:思考一种高性能的服务器处理框架

终于开始学习epoll了,虽然不明白的地方还是很多,但从理论到实践,相信自己动手去写一个具体的框架后,一切会清晰很多。1、首先需要一个内存池,目的在于:·减少频繁的分配和释放,提高性能的同时,还能避免内存碎片的问题;·能够存储变长的数据,不要很傻瓜地只能预分配一个最大长度;·基于SLAB算法实现内存池是一个好的思路:分配不同大小的多个块,请求时返回大于请求长度的最小块即可,对于

2017-02-08 10:16:16 1495

原创 linux下clock计时为0的问题?

使用linux的select函数作为定时器,发现调用clock进行计时,每次得到的结果都是0,原因是因为clock的函数定义是指从程序启动到cpu所占用的时间,这个很重要,如果调用的函数并未占用cpu的时间,这个是不计时的,包括调用sleep之类的,也是不会计入cpu的耗时的,所以在select的循环中直接调用clock是没有意义的,如果需要计量时间,只能是调用time了。

2017-02-03 15:41:56 2824

原创 CentOS安装字体

1.将字体文件(*.ttf)文件拷贝至 /usr/share/fonts/ 目录下2.将当前终端用户切换为超级用户3.在终端下切换至字体文件的所在目录位置4.执行如下命令   mkfontscale   mkfontdir   fc-cache -fv

2017-01-22 16:08:15 562

转载 Linux中SIGPIPE信号说明

当服务器close一个连接时,若client端接着发数据。根据TCP协议的规定,会收到一个RST响应,client再往这个服务器发送数据时,系统会发出一个SIGPIPE信号给进程,告诉进程这个连接已经断开了,不要再写了。我写了一个服务器程序,在Linux下测试,然后用C++写了客户端用千万级别数量的短链接进行压力测试.  但是服务器总是莫名退出,没有core文件.最后问题确

2017-01-22 15:53:24 1877

原创 ctags的使用

Ctags递归生成C++标签的命令ctags -R --sort=yes --c++-kinds=+p --fields=+iaS --extra=+q --language-force=C++CTags递归生成C标签的命令(Linux /usr/include)ctags -R --sort=yes --c-kinds=+l+x+p --fields=+ls -I __T

2017-01-20 11:11:44 620

原创 makefile和bash结合编译-执行(入门)

有一个test.c的源文件,需要编译和运行,可以使用如下的Makefile和脚本来进行操作//test.c#include int main(int argc, char *argv[]){  printf("test ....\n");  return 0;}#Makefile#Makefile脚本#Makefile脚本的规范,依赖关系,执行命令

2017-01-19 17:04:03 2140

转载 Linux网络编程常用文件

=====常用Linux网络编程头文件====sys/types.h:数据类型定义   sys/socket.h:提供socket函数及数据结构   netinet/in.h:定义数据结构sockaddr_in   arpa/inet.h:提供IP地址转换函数   netdb.h:提供设置及获取域名的函数   sys/ioctl.h:提供对I/O控制的函数   sys/

2017-01-19 15:42:57 246

转载 Bash脚本中进制转换

修改脚本时,想直接用10进制转换为16进制的方法,在网上搜了搜,结果是找到了,可惜所用系统中没有对应的指令,还是用不成,最后就用了一个比较笨一点的方法。既然有需要,就把搜到感觉有用的进制转换函数或指令都贴在这里,便于以后应用。shell可以在不调用第3方命令,表示不同进制数据。这里总结以下表示方法。shell 脚本默认数值是由10 进制数处理,除非这个数字某种特殊的标记法或前缀开头

2017-01-18 15:15:24 3415 1

转载 IP数据包中报头长度的计算

IP数据包格式版本Version:4位,表示IP地址的版本 1111=32bits首部长度Header Length:4位,表示IP数据报头的长度,最小20字节,最大69字节。那么这个bit是怎么表示的呢。0001 = 1X4=4字节  0101 = 5  5X4=20字节  1111 = 15  15X4=60字节

2017-01-18 11:25:52 8606

python编写的汽车之家爬虫

自动下载汽车之家资源,并使用json进行解析出完整数据列表。

2015-02-14

QT的WebKitDemo

1.用QT编写的访问天气的代码 2.用QT编写的HTML脚本

2014-10-15

nsis编译2012版本

nsis编译2012版本

2014-09-12

nsis-vs2010编译通过的安装包程序

nsis-vs2010编译通过的安装包程序,我折腾了很长时间才编译通过,喜欢的同学可以研究一下

2014-09-12

testplusplus

plusplus语法解析和qt-creator-opensource-src-3.1.0使用,很不错的东西,我研究了qtcreator的源码

2014-08-27

com初学demo

一个客户端例子,一个服务端的例子,算是入门的demo吧,大家可以看看

2014-08-13

openGL图形变换和裁剪

openGL图形变换和裁剪,矩阵的使用以及基本的用法。

2013-10-21

visual asssistant

Visual Assistant 支持VS2008和VS2010,是程序猿的必备工具

2013-06-05

android4.2.2src.zip

在网上找了老半天才找到~,费劲,需要的朋友请下载。

2013-05-13

android自动短信发送源码

用来学习短信模块的绝佳代码! public class ListAdapter extends BaseAdapter { private LayoutInflater mInflater; private List<Map<String, Object>> mData; public static Map<Integer, Boolean> isSelected; SMSINFODao smsinfodao; public ListAdapter(Context context) { mInflater = LayoutInflater.from(context); init(context); } //初始化 private void init(Context context) { mData=new ArrayList<Map<String, Object>>(); smsinfodao = new SMSINFODao(context); Cursor cursor = smsinfodao.select(); while (cursor.moveToNext()) { Map<String, Object> map = new HashMap<String, Object>(); map.put("img", android.R.drawable.ic_dialog_email); map.put("pn", cursor.getString(0)); map.put("title", cursor.getString(1)); map.put("body", cursor.getString(2)); mData.add(map); }

2013-04-26

Windows环境下实现原始UDP数据包发送

在Windows上实现原始UDP数据的通信,这是一个很实用的例子,喜欢的朋友可以好好看看

2011-10-16

矩阵的算法课件-对于学习OpenGL的朋友来说值得一看

对于学习OpenGL的朋友来说,复习线性代数应该是很有必要的,这里就有matrix的一套课件,值得参考一下

2010-03-23

独立的键盘钩子,用来hook键盘的一个小程序,很值得看看

这个程序是用来hook键盘的,而且是一个全局hook,但是程序并没有用全局的,所以是个不错的程序,这个程序是在console台下运行的,你也可以改写该代码

2009-12-29

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除