编程学习
yanghaitao_1990
我就是我
展开
-
青蛙跳台阶,变态跳台阶问题
假设,一级台阶,有f(1)种方法,二级有f(2)种,以此类推,n级有f(n)种方法。可以看出,f(1)=1;f(2)=2。那么,假设n级台阶,那么第一步就有两种情况,跳一步,跟跳两步。情况一:跳一步,那么接下去的就是f(n-1);情况二:跳两步,那么接下去的就是f(n-2)。所以总数是f(n)=f(n-1)+f(n-2)。 介绍一种复杂度更低的一种办法从下往上算,首先根据f(1)和f(2)原创 2016-06-08 10:20:16 · 5041 阅读 · 2 评论 -
sleep和wait有什么区别
*1、这两个方法来自不同的类分别是Thread和Object 2、最主要是sleep方法没有释放锁,而 wait 方法释放了锁,使得其他线程可以使用同步控制块或者方法。 3、wait,notify和notifyAll只能在同步控制方法或者同步控制块里面使用,而sleep可以在任何地方使用(使用范围) synchronized(x){ x.notify()转载 2016-06-09 16:50:42 · 445 阅读 · 0 评论 -
如何编写Socket套接字?
服务器端程序编写:调用ServerSocket(int port)创建一个服务器端的套接字,并绑定到指定端口上。调用accept(),监听连接请求,则接收连接,返回通信套接字。调用Socket类getOutStream()和getInputStream()获取输出流和输入流,开始网络数据的发送和接收。关闭通信套接字Socket.close()。客户端程序编写:调用Socket()创建一个原创 2016-06-12 11:31:16 · 719 阅读 · 0 评论 -
分别给出BOOL,int,float,指针变量 与“零值”比较的 if 语句
BOOL型变量:if(!var) int型变量: if(var==0) float型变量: const float EPSINON = 0.00001; if ((x >= - EPSINON) && (x <= EPSINON) 指针变量: if(var==NULL) 【剖析】 考查对0值判断的“内功”,BOOL型变量的0判断完全可以写成if(var==0),而int型变量也可以写原创 2016-06-12 16:34:10 · 1248 阅读 · 0 评论 -
编写类String的构造函数、析构函数和赋值函数
已知类String的原型为:class String{ public: String(const char *str = NULL); // 普通构造函数 String(const String &other); // 拷贝构造函数 ~ String(void); // 析构函数 String & operator =(const String &other); // 赋值函数原创 2016-06-12 16:44:34 · 597 阅读 · 0 评论 -
动态链接库两种调用方式的比较
一、动态链接库的概念动态链接库(Dynamic Link Library,缩写为DLL)是一个可以被其它应用程序共享的程序模块,其中封装了一些可以被共享的例程和资源。动态链接库文件的扩展名一般是dll,也有可能是drv、sys和fon,它和可执行文件(exe)非常类似,区别在于DLL中虽然包含了可执行代码却不能单独执行,而应由Windows应用程序直接或间接调用。 动态链接是相对于静态链接而言的。转载 2016-06-12 21:22:41 · 2857 阅读 · 0 评论 -
虚函数与纯虚函数区别
总结: 1、纯虚函数声明如下: virtual void funtion1()=0; 纯虚函数一定没有定义,纯虚函数用来规范派生类的行为,即接口。包含纯虚函数的类是抽象类,抽象类不能定义实例,但可以声明指向实现该抽象类的具体类的指针或引用。 2、虚函数声明如下:virtual ReturnType FunctionName(Parameter);虚函数必须实现,如果不实现,编译器将报错,错误提示转载 2016-06-17 15:18:13 · 1400 阅读 · 0 评论