自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

活在阳光下

记录点滴 方成大牛

  • 博客(164)
  • 资源 (5)
  • 收藏
  • 关注

原创 JniHelper详细说明

1.Jni的介绍先简单介绍一下,Jni简称(Java Native Interface)Java原生接口,在Java里面用Native修饰的方法由另外一种语言实现的本地方法,意思就是说,这个用native修饰的方法在Java里面只能看到声明看不到定义。再简单来说,这个Jni的作用就是Java和其他语言的交互,其他语言可以调用Java相关环境,Java也可以用Jni技术来调用其他语言来弥补自

2016-12-28 11:14:35 6513

原创 有关eclipse不识别手机的问题

这个问题的原因有很多种,abd.exe的问题是很大的原因,我这里先不说这个原因,说一些别的原因,特别是在新装的系统的电脑上。首先打开你的电脑设备管理器,你会发现你的电脑没有Android Phone如下图:(我这个有Android Phone)是因为我先前装了,而且还要插上手机,不插手机显示不出来,下面说一下如何安装这个驱动。我从网上下载了很多Android usb der

2016-12-26 17:46:22 612

原创 quick-lua新建一个HelloWorld的项目并且编译Android版本

1.下载Qucik-lua引擎首先下载quick-lua引擎,并且安装在本地,点击下载并安装。安装完成目录如下,build:编译Cocos2d-x库的各平台工程。cocos:Cocos2d-x引擎的C++代码。docs:Cocos2d-lua的官网文档。extensions:GUI、物理引擎等扩展模块。external:第三方库。licenses:引擎以及第

2016-12-26 11:23:15 5274 3

原创 画一个三角形

先上三角形的代码:#include // GLEW#define GLEW_STATIC#include // GLFW#include // 回调函数的声明void key_callback(GLFWwindow* window, int key, int scancode, int action, int mode);// 窗体的宽和高const GLuint

2016-07-29 10:38:34 496

原创 创建一个窗口

OPENGL简介通俗来讲OPENGL就是一套图形API的集合,其实不单单是这样,它也是API执行的规范。OPENGL整体其实是一个巨大的状态机(State Machine),根据一系列变量的值来确定OPENGL的行为,这些不同的状态我们统称为OPENGL上下文(Context)。OPENGL里面含有很多不同的Object。每个对象都代表一个状态,通过设置很多对象,来让OPENGL执行不同的功能

2016-07-28 21:03:25 449

原创 绝不重新定义继承而来的non-virtual函数

假设我告诉你,class D是由class B以public形式派生而来的,class B定义有一个public成员函数mf。由于mf的参数和返回值都不重要,所以我认为它们是void。看下面的代码:// ConsoleApplication2.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"class B{public: void mf();

2016-07-05 10:26:44 48796

原创 区分接口继承和实现继承

表面上的public继承概念,其实经过严密的严查之后,会发现它由两部分组成:函数接口继承和函数实现继承。这两种继承的差异,其实就是函数声明与函数定义之间的差异。作为class的设计者,有时候你会希望derived class只继承成员函数的接口(也就是声明);有时候你又希望derived class同时继承函数的接口和实现,但又希望能够覆写(override)他们所继承的实现;又有时候你希望d

2016-07-04 18:25:13 2322

原创 避免遮掩继承而来的名称

我们知道,当位于一个derived class成员函数内指涉(refer to)base class内的某物(也许是个成员函数、typedef、或是成员变量)时,编译器可以找出我们所指的东西,因为derived class继承了声明与base class内的所有东西。但是让我们看下面一段代码:// ConsoleApplication2.cpp : 定义控制台应用程序的入口点。//#in

2016-07-04 17:27:05 429

原创 C#知识点详解

1.装箱与拆箱装箱(boxing)和拆箱(unboxing)是C#中的重要概念。它允许将任何类型的数据转换成对象类型,同时也允许任何类型的对象转换到与之兼容的数据类型。必须注意的是:装箱和拆箱过程中必须遵循类型兼容的原则,否则会转换失败。装箱转换是指将一个值类型的数据隐式的转换成一个对象(object)的数据。把一个值类型装箱,就是创建一个object类型的实例,并把该值类型的值复制给该o

2016-06-16 11:17:21 775

原创 C#程序入门

1.HelloWorldusing System;class Welcome{ static void Main() { Console.WriteLine("HelloWorld!"); }}2.C#的程序结构分析2.1 命名空间上述代码中的using System表示导入System的命名空间。然后下面的Console.Writ

2016-06-14 10:31:12 492 1

原创 const的用法

char greeting[]="Hello"; char* p=greeting; const char* p=greeting; //non-const pointer,const data char* const p=greeting; //const pointer,non-const data const char* const p=greeting;//cons

2016-04-15 22:20:54 336

原创 用inline替换#define的好处

代码中可以用#define来进行类似函数之类的操作;比如可以比较两个数字的大小:#define CALL_WITH_MAX(a,b) f((a)>(b)?(a):(b))这样宏在代码中并不少见,但是这样的宏带来的弊端也是非常明显的,有些情况添加括号可以解决某些问题,但是有些问题,是这类形式带来的,括号是避免不了的,比如说下面的例子:int a=5,b=0;CALL_WITH_MAX(

2016-04-14 20:00:50 1779 2

原创 水手分椰子问题

五个水手来到一个岛上,采了一堆椰子后,因为疲劳都睡着了。一段时间后,第一个水手醒来,悄悄地将椰子等分成五份,多出一个椰子,便给了旁边的猴子,然后自己藏起一份,再将剩下的椰子重新合在一起,继续睡觉。不久,第二名水手醒来,同样将椰子了等分成五份,恰好也多出一个,也给了猴子。然而自己也藏起一份,再将剩下的椰子重新合在一起。以后每个水手都如此分了一次并都藏起一份,也恰好都把多出的一个给了猴子。第二天,五个

2016-04-13 21:32:42 12042 1

原创 杨辉三角

杨辉三角的每一行的首尾两数均为1;第k行共有k个数,除首尾两数外,其余各数均为上一行的肩上两数之和。#include void main(){ int n,i,j,k,a[20][20]; printf("请输入行数:"); scanf("%d",&n); for(i=1;i<=n;i++) { a[i][1]=1; a[i][i]=1;

2016-04-13 21:22:34 593

原创 统计n!尾部零

试统计正整数n的阶乘n!=1*2*...*n的尾部连续零的个数。(1)基本求积运算算法要点:注意到输入整数n规模可能较大,n!尾部零的个数也就较多,设计a数组存储n!的各位数字,a[1]存储个位数字,a[2]存储十位数字,以此类推。首先通过常用对数累加和s=lg2+lg3+...+lgn确定n!的位数m=s+1,即a数组元素的个数。设置两重循环,模拟整数竖式乘法实施各数组元素的

2016-04-12 16:00:41 1342

原创 拆分为连续正整数之和

试把一个正整数n拆分为若干个(不少于2个)连续正整数之和。例如n=15,有三种拆分:15=1+2+3+4+5,15=4+5+6,15=7+8.对于给定的正整数n求出所有符合这种拆分要求的连续正整数序列的个数。(1)基本求和算法算法要点:定义变量s实施连续求和,设计i(1~(n-1)/2)循环为连续求和的起始项,j(i~(n+1)/2)为连续求和的累加项。在j循环中每加一项j

2016-04-12 14:22:41 1954

原创 欧几里德算法求最大公约数

欧几里德算法依据的算法定理是:gcd(m,n)=gcd(n,m mod n);(1) m除以n得余数r,若r为0,则n就是所求得最大公约数(2) 若r不等于0,以n为m,r为n继续(1)欧几里德算法又称为辗转相除法:代码如下#include void main(){ long m,n,c,r; printf("请输入整数m,n:"); scanf("%d %d",&m,

2016-04-11 19:22:31 1732

转载 C++继承方式

公有继承(public)、私有继承(private)、保护继承(protected)是常用的三种继承方式。1. 公有继承(public)公有继承的特点是基类的公有成员和保护成员作为派生类的成员时,它们都保持原有的状态,而基类的私有成员仍然是私有的,不能被这个派生类的子类所访问。2. 私有继承(private)私有继承的特点是基类的公有成员和保护成员都作为派生类的私有

2016-03-16 10:24:11 306

原创 不能用加减乘除做加法

对于这样的问题我们可以分为三部。第一步:把两个数字做异或运算^第二步:把两个数字做位于运算,然后把结果向左移一位,第三步:把前两步得到的结果相加,一直重复到第二步得到的结果为0为止。// AddTwoNumbers.cpp : Defines the entry point for the console application.//// 《剑指Offer——名企面试

2016-03-13 15:42:03 373

原创 求1+2+3+4+++++++n

要求不能使用for、while、if、else、switch、case等关键字,以及条件判断语句(A?B:C)方法一:我们可以用构造函数来完成这个事情,我们为了一个类创建n个对象,设置一个类的静态变量,用new分配内存(因为new自动调用构造函数)方法二:我们可以用虚函数来求解,定义两个函数,一个函数充当递归函数的角色,另一个函数处理终止递归的情况,我们需要做的就是在这两个

2016-03-13 15:22:09 1177

原创 圆圈中最后剩下的数字(约瑟夫环问题)

0,1,2,3   n-1这n个数字排成一个圈,从数字0开始每次从这个圆圈里删除第m个数字。求这个圆圈中最后剩下的数字。既题目是一个数字圆圈,我们很自然的想到就是用一个数据结构来模拟这个圆圈。环形链表是最好的办法,但是如果我们不能使用标准模板库里的数据容器来模拟环形链表,我们可以自己实现一个链表也不是很难呐。我们可以用模板库中的std::list来模拟环形链表。每当迭代器扫描到

2016-03-13 12:16:00 705

原创 扑克牌的顺子问题

从扑克牌中随意抽五张牌,判断是不是一个顺子,即这五张牌是不是连续的。2-10为数字本身,A为1,J为11,Q为12.K为13.而大小王可以看成任意的数字。我们需要把这五张牌看成是数字的形式,我们领大小王看成0,我们假定大小王可以代替任意的数字,这样先把抽出的五张牌按照数字大小的顺序排成一个有序的队列,然后统计里面的0的数字个数,还有其他数字的间隔个数字个数,比如1和4之间间隔了2,3,

2016-03-13 11:29:48 1150

原创 两个链表的第一个公共节点

输入两个链表,找出它们的第一个公共的节点。碰到这种题的时候千万不要用挨个遍历的方法,时间复杂度高对于两个有相同节点的链表的形状一定是Y。而不是X。然后还可能一个链表长一个链表短,我们可以求出差值,然后让长链表先走差值的长度,然后在挨个比较就可以了。这样时间复杂度就小很多了:// FirstCommandNodesInLists.cpp : Defines the entry p

2016-03-12 16:22:50 321

原创 数组中的逆序对

在数组中的两个数字如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对。输入一个数组,求这个数组中逆序对的总队数。扫描数组的方法并不高效,时间复杂度为O(N*N),我们可以考虑拆分数组,每次平均拆分成两组,一直拆到每组数组均有一个元素,我们设置两个指针分别指向两个字数组的末尾,每次比较指针指向的数字,如果第一个数字大于第二个数字,则构成逆序对,并且逆序对的数字等于第二个数组中的数

2016-03-12 16:03:50 360

原创 第一个只出现一次的字符

在字符串中找到一个只出现一次的字符。如输入“abaccdeff” 输出结果为'b'。最直观的想法就是从头开始扫描这个字符串中的每个字符。当访问到某个字符的时候拿这个字符和后面的每个字符相比较,如果在后面没有发现重复的字符,则该字符就是只出现一次的字符,不过这种方法时间复杂度是O(n*n)。我们可以定义一个哈希表,哈希表的键值是字符,而值是数字。然后扫描字符串两次,第一次扫描字符串时

2016-03-12 15:35:05 279

原创 丑数的问题

题目:我们把只包含因子2,3,5的数称为丑数。求按从小达到的顺序的第1500个丑数。习惯上我们把1当作第一个丑数。这个问题乍看不是很难,很容易想到快速的方法求解,可是效率总是很低!根据题目可以看出丑数是有规律的,都是2或3或5的倍数,除了1之外,那么我们就可以利用这一个规律求某个范围内的丑数,而不是每个数字都判断一下。如何求一个丑数数组的下一个丑数,下一个丑数肯定比之前最后

2016-03-12 15:16:15 545

原创 两个数字判断大小

有两个int型数据A和B,在不借助于if  ?:  swich等判断条件时求出最大的值::方案一:int max=((a+b)=abs(a-b))/2方案二:int c=a-b;c=unsigned(c)>>(sizeof(int)*8-1)

2016-03-11 18:53:19 2208

原创 八皇后的问题

首先介绍一下八皇后的问题。这是一个古老而著名的问题,指的是在一个8X8的国际象棋棋盘上,有八个皇后,每个皇后占一个;要求皇后之间不会出现相互攻击的现象,即不能有两个皇后处在同一行、同一列或同一对角线上。问一个有多少种不同的排列方法?下面是代码:#includeusing namespace std;static int gEightQueen[8] = { 0 }, gCount = 0;

2016-03-10 21:17:10 376

原创 字符串转换为数字

#include #include using namespace std;void ConvertLong(string n,long&);int main(){ string a="1234585"; long value=0; ConvertLong(a,value); cout<<value<<":"<<value+1<<endl; return 0;}void

2016-03-10 19:54:43 345

原创 求素数

首先素数是除了1和自身之外,在没有可以被整除的数:#include #include using namespace std;void GetPrimer(long n,vector& primer);int main(){ vector primer; GetPrimer(100,primer); vector::iterator it=primer.begin(); whi

2016-03-10 19:44:50 303

原创 任意进制转换二进制

#include #include #include using namespace std;void fconvert(long n,vector&);int main(){ vector bit; //保存转换之后的结果 fconvert(11,bit); vector::iterator it=bit.begin(); while(it!=bit.en

2016-03-10 19:33:49 1477

原创 杨辉三角

杨辉三角是一个由数字排列成的三角形数表:/* yh-2d.c - 二维数组迭代 */#include#define M 10 // 行数 #define PYRAMID // 金字塔,会额外填充空格 #define REVERSE // 反向再来一次,得到菱形int main(void){ int a [M][M], i, j; // 二维数组和循环变量,a[行

2016-03-10 19:09:41 271

原创 a和&a的区别

下面先看一段代码:#include void main(){ int a[5]={1,2,3,4,5}; int* ptr=(int *)(&a+1); printf("%d,%d\n",*(a+1),*(ptr-1));}打印出来的结果是2,5.为什么呐?听我分析:&a+1  取数组的首地址,加1,&a是整个数组的首地址,加上一代表了a[5](越界)。(int

2016-03-04 22:29:36 898

原创 volatile

先看两段代码:int i=0;int j=i;int k=i;//volatile int i=0;int j=i;int k=i;第一段代码编译器对代码进行优化,因为代码一的两条语句中,i没有被用作左值。这个时候编译器认为i的值没有发生改变,所以在第一条语句时从内存取出i的值付给j后i并没有被丢弃,而是在第二条语句是赋给k。编译器不会生成出汇编代码重新从内存里取i的值,

2016-03-04 11:06:12 274

原创 有关对sizeof的使用

在32位系统上,每个整数占用四个字节,对任意的指针求sizeof得到的结果都是4.另外在C/C++中,当数组作为函数的参数进行传递时,数组就会自动退化为同类型的指针!

2016-03-04 10:53:14 255

原创 static和全局变量和局部变量的问题

在c语言中,static有好几种作用,下面介绍:1.隐藏的作用比如说我们在一个源代码文件中定义了一个整型变量a(全局变量)。那么在整个项目中a都是可见的,如果在其前面加上static,那么a此时变成了一个静态的全局变量,此时a只能被本源代码文件中引用,对其他代码文件是隐藏的,对于函数来说static也具有隐藏的作用。2.变量持久化的作用static修饰的变量全部存储在静态数据区,在

2016-03-04 10:47:36 568

原创 int和unsigned int相互转换的问题

先看下面这段代码:#include void main(){ unsigned int a=6; int b=-20; if((a+b)>6) printf(">6"); else printf("<=6");}乍看认为结果是6,这是因为a+b做了隐式的转换,把int转换为unsigned int. 编译器就会把b当做一个很大的正数!!!

2016-03-04 10:31:27 14795

原创 按钮事件

在Cocos-Lua中按钮分为三种Button控件,分别是UIPushButton、UICheckBoxButton和UICheckBoxButtonGroup,它们全部派生自UIButton。1.UIButton按钮事件上面三个Button控件全部派生自UIButton,可以监听如下事件:(1):CLICKED,单击按钮。使用UIButton:onButtonClicked(call

2016-01-20 16:37:34 1676

原创 继承关系

1.访问控制和继承在基类中,public和private标号具有普通含义:用户代码可以访问类的public成员而不能访问private成员,private成员只能由基类成员方法和友元方法访问。派生类也没有什么特殊的,和用户代码具有一样的权限:它可以访问public成员但是不可以访问private成员。还有一种叫做protected成员,它希望允许派生类访问,但是禁止其他用户访问这些成员。p

2015-11-01 19:53:57 595

原创 Lua的表达式

Lua支持常规的算数操作符:二元的“+”、“-”、“*”、“/”、“^”、"%"。还有一元的“-”(负号)。对于实数来说,X%1的结果就是X的小数部分,而X-X%1就是其整数部分。类似的,X-X%0.01则是x精确到小数点后两位的部分。在Lua中提供了一下关系操作符:  =  ==  ~=     所有这些操作符的运算结果都是true或者false。==操作符主要是用于相等性测试,操作符~=用

2015-07-11 08:57:27 627 1

Python图形库

python图形库graphics

2017-06-05

SQLite Expert Professional

SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。

2017-01-01

OpenGL开发工具库

内含GLFW,GLEW,CMake,GLM库文件

2016-07-28

windowsAPI俄罗斯方块

本游戏是由windowsAPI编写 肯定有不完善的地方 上传上来供大家学习参考

2014-08-29

Windows程序设计源代码

Windows程序设计第五版珍藏版源代码,全部23章源代码以及运行程序

2014-04-16

空空如也

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

TA关注的人

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