- 博客(25)
- 资源 (2)
- 收藏
- 关注
原创 离散数学 偏序关系中盖住关系的求取及格论中有补格的判定
内容:编程实现整除关系这一偏序关系上所有盖住关系的求取,并判定对应偏序集是否为格。要求:对任意给定正整数,利用整除关系求所有由其因子构成的集合所构成的格,判断其是否为有补格。#includeint min(int a,int b)//求最大公约数{ int k=0,s=0; if(a>b) { k=a%b; s=b; } else { k=b%a; s=a;
2014-11-29 22:34:31 5638
原创 查看C++程序的运行时间
#include <iostream>#include <time.h>int main(){ clock_t start,finish; start = clock(); for(int i = 1;i<1000; i*=5) { std::cout<<i<<std::endl; } finish = clock(); ...
2018-12-04 11:10:43 4450 2
原创 C++ 虚函数 虚内存的内存模型
1 多态类型 在C++中,多态类型是指声明或者继承了至少一个虚函数的类型,反之则为非多态类型。 对于非多态类型的变量,其类型信息都可以在编译时确定。例如:struct C{ /* data */ void foo() {}};C c; std::cout << typeid(c).name(); // 可以在编译时确定a的类型为A c.foo(); ...
2018-08-20 20:20:10 1404
原创 c++ struct 内存对齐
结构体的内存布局依赖于cpu,操作系统,编译器以及编译时的选项。 考虑三点: 1.成员对齐 每个成员变量存放的位置相对于结构体起始位置的偏移量必须为该变量类型所占用字节数的倍数。 空缺的字节由编译器自动padding,padding的值根据内存分配的不同,也会有所不同,这需要接下来的测试。 2.结构体对齐 结构体类型的对齐要求不能比它内部类型中要求最严格的那个宽松,也就是要是最大类型的...
2018-08-12 17:30:39 1395
原创 找出数组中第一个重复的元素
长度为n的数组,存放0-n-1的int数,找出数组中第一个重复的元素。bool duplicate(int numbers[], int length, int* duplication) { if (length <= 0 || numbers == nullptr) { return false; } for (int i = 0; i &...
2018-07-30 22:05:39 1179
原创 C++单例模式
//// Created by fengxb on 18-7-28.//#ifndef SINGLETON_SINGLETON_H#define SINGLETON_SINGLETON_H#include <pthread.h>class Singleton{public: static Singleton* getInstance(); stati...
2018-07-28 12:19:18 170
原创 strcpy函数
char* my_strcpy(char* dest_str, const char* src_str){ if(dest_str== nullptr||src_str== nullptr){ throw “invalid arguments”; } //c语言字符数组以\0结尾 char* dest_cpy_str=dest_str; ...
2018-07-28 10:59:22 169
原创 求链表导数第k个节点
typedef struct ListNode{ int data; struct ListNode* next;}ListNode;ListNode* FindKthToTail(ListNode* pListHead, uint32 k){ if(pListHead== nullptr){ return nullptr; } Li...
2018-07-27 23:48:19 235
原创 c++ 实现atoi函数
atoi函数就是由string转为int,在这个过程中需要做一些判断。 1. 判断string长度>0 2. 判断首位字符的符号 3. 正负数对应的溢出条件 4. 判断每一位的字符 参考了JDK1.8的实现。int my_strlen(const char*s){ if(s== nullptr){ cout<<"error"<<e...
2018-07-27 00:27:01 4075
转载 即时通讯软件如何保证消息的不重复和不丢失
今天手机的微信收到的消息总是会延迟,于是了解了一下。 消息的可靠性,即消息的不丢失和不重复,是im系统中的一个难点。当初qq在技术上(当时叫oicq)因为以下两点原因才打败了icq: 1)qq的消息投递可靠(消息不丢失,不重复) 2)qq的垃圾消息少(它antispam做得好,这也是一个难点,但不是本文重点讨论的内容) 今天,本文将用十分通俗的语言,来讲述IM系统中消息可靠性的问题。...
2018-06-01 16:22:57 5333 4
原创 Java 多线程阻塞echo服务器
当Server端收到一个Client的连接时,新创建一个Thread线程来处理该请求(输入输出)。public class Server { public static void main(String[] args) throws IOException { ServerSocket serverSocket=new ServerSocket(5555); ...
2018-05-23 11:44:21 213
原创 java 单线程echo服务器
Server 端1.创建ServerSocket类,绑定指定端口,端口号大于1024(否则需要root权限启动)。 2.调用serverSocket类的accept()方法实现端口监听 3.初始化输入输出流out in 4.循环收发数据 5.关闭流和套接字Client端1.创建Socket类,绑定host和端口号 2.初始化输入输出流 3.循环收发数据 4.关闭流...
2018-05-23 10:28:30 249
原创 java异步回调模式
java的异步回调模式,是指当类A实现了CallBack接口,A类包含了B类的引用,在A类中调用B类的方法,然后在B类的方法中调用A类的callback方法。异步体现在:A类通过新起一个线程执行B类的方法,至于该方法有没有执行完,暂时不用去等待。下面是一个回调代码示例:类A实现了一个CallBack接口,来计算一个数的平方,在A类中调用B类的方法来计算,B通过回调返回计算结果。package ca...
2018-05-16 19:41:51 3008 1
原创 求N的阶乘的位数
方法一:对于任何一个自然数,判断它的的位数,可以使用lg(N)+1来计算。那么对于N!的位数,自然有log10(N!)+1,根据展开原则,有lg(N!)=[lg(N*(N-1)*(N-2)*......*3*2*1)]+1=[lgN+lg(N-1)+lg(N-2)+......+lg3+lg2+lg1]+1具体代码:public static void main(String[] args){ ...
2018-04-25 10:35:34 3766
原创 判断质数
质数是只能被1和它自身整除的数。public class Test1 { public static void main(String[] args){ Scanner sc=new Scanner(System.in); int n=sc.nextInt(); for(int i=2;i<n;i++){ if(...
2018-04-24 11:42:49 168
原创 JDK源码分析 Integer 静态内部类IntegerCache
源码如下:private static class IntegerCache { static final int low = -128; static final int high; static final Integer cache[]; static { // high value may be co...
2018-04-21 18:45:58 299
原创 JDK源码分析 Integer parseInt()源码分析
java.lang.integer 源码分析一般情况下,编程的基础类库支持2进制到36进制。if (radix < Character.MIN_RADIX) { throw new NumberFormatException("radix " + radix + " less th...
2018-04-21 18:17:58 432
原创 计算机编码知识
ASCII传统的ASCII编码:范围0-127 总数量128 每个字符占有1byte 8个bit位 最高位为奇偶校验码表示在00000000------>01111111范围内,具体字符为:后来世界各地都开始使用计算机,但是很多国家用的不是英文,他们的字母里有许多是ASCII里没有的,为了可以在计算机保存他们的文字,他们决定采用 127号之后的空位来表示这些新的字母、符号,还加入了很多画表...
2018-04-20 15:55:26 444
原创 vim操作
打开匹配查找功能(匹配查找:在进行查找时就会显示出不断匹配的过程。例如你想查找的内容是include,在打开这个选项后,当你输入/i,光标定位在i上,再继续输入n光标定位在in上,如此直到查打到所要求的内容)打开命令:set incsearch, 关闭这个选项的命令为::set noincsearch; vim跳到指定行在编辑模式下输入ngg 或者 nGn为指定的行数(如2
2015-05-15 18:06:00 362
原创 Ubuntu下安装Apache+PHP+MySQL
安装apache,在命令行终端中输入一下命令:$ sudo apt-get install apache2安装完成后,重启apache服务,在命令行终端中输入一下命令:$ sudo /etc/init.d/apache2 restart1. 删除apache在命令行中输入:$ sudo apt-get --purge remove apache-common
2015-05-14 22:13:11 416
转载 函数参数问题
引用是一个变量的别名,除用&取代*外,定义引用的方法与定义指针类似。例如: double num1 = 3.14; double &num2 = num1; // num是num2的引用 定义num2为num1的引用,它并没有复制num1,而只是num1的别名。也就是说,它们是相同的变量。例如,如果执行下面的语句: num1 = 0.16;
2014-11-04 09:04:05 321
原创 二叉树的基本操作
创建一棵二叉树,分别实现先序、中序和后序遍历一棵二叉树,计算二叉树结点个数等操作等。头文件:BTree.h#include#includeint couter=0;//全局变量,用于存储二叉树的叶子总数//二叉树链结点类:class BTreeNode{ friend class BTree; friend class Queue; int data; BTr
2014-10-25 11:01:48 381
unix网络编程代码
2017-12-11
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人