- 博客(333)
- 资源 (1)
- 收藏
- 关注
原创 一个客户端开发者对于微信小程序的认识
“小程序”能否代替AppHTML5与App还是存着本质的区别:App功能极为复杂,而HTML5基本上只有简单的一个功能,这种差别就像早年间的flash小游戏和大型单机游戏之间的差别,“小程序”根本无法替代App。“小程序”主打“用完即走”、无需安装和卸载的模式,这对于用户来说方便快捷,但对于产品而言,却失去了沉淀用户最基本的方式。这里可以看到,APP获取一个用户的门槛是高的,但高门槛带...
2016-09-24 19:55:50
254
原创 iOS设备标识演进
随着iOS系统版本的演进,或是出于安全的角度,或是出于保护用于隐私的需求,iOS设备获取设备唯一标识的方法也在不断地发生变化。 一些公认的设备标识,比如UDID或MAC地址,虽然我们可以通过iTunes等工具查看联机设备的具体参数,但目前已经无法通过合法的系统API获取到这些参数。 因此,如何基于不同iOS版本获取正确的设备标识,对于一个iOS开发人员来讲,是一个特别...
2016-09-07 18:08:23
206
原创 关于getifaddrs()和struct ifaddrs的说明
1,关于struct ifaddrs的说明:struct ifaddrs { struct ifaddrs *ifa_next; /* Next item in list */ char *ifa_name; /* Name of interface */ unsigned int ifa_flags; /*...
2011-06-21 10:16:22
310
原创 这只是中转站
// // Copyright (c) 2011 Shun Takebayashi// // Permission is hereby granted, free of charge, to any person obtaining a copy// of this software and associated documentation files (the "Software...
2011-05-10 09:11:26
210
原创 【转载】共享内存与线程局部存储
出自:[url]http://blog.csdn.net/absurd[/url]城里的人想出去,城外的人想进来。这是《围城》里的一句话,它可能比《围城》本身更加有名。我想这句话的前提是,要么住在城里,要么住在城外,二者只能居其一。否则想住在城里就可以住在城里,想住在城外就可以住在城外,你大可以选择单日住在城里,双日住在城外,也就没有心思去想出去还是进来了。理想情况是即可以住在城里又可...
2011-05-08 17:52:44
94
原创 UyHiP趣题:限制最苛刻的选票统计程序
【转载】[url]http://www.matrix67.com/blog/archives/4228[/url]一个国家里有 N 个公民,这些公民从 1 到 N 依次编号。这是一个民主国家,国家做出的每个决定都需要全体公民投票,每个人必须且只能投一票。 不过,随着该国家人口数量的增加,这种投票方式的效率越来越低。于是,这个国家实行了一种新的民主制度。每过四年,这个国家将会举行一...
2011-03-25 09:01:52
108
原创 一个让你和她心有灵犀的数学魔术
1,在一张纸上并排画 11 个小方格。叫你的好朋友背对着你(确保你看不到他在纸上写什么),在前两个方格中随便填两个 1 到 10 之间的数。从第三个方格开始,在每个方格里填入前两个方格里的数之和。让你的朋友一直算出第 10 个方格里的数。假如你的朋友一开始填入方格的数是 7 和 3 ,那么前 10 个方格里的数应该是[table]|7 3 10 13 23 36 59 95 ...
2010-12-20 21:24:14
289
原创 为什么堆排比快排慢
[节选][url]http://mindhacks.cn/2008/06/13/why-is-quicksort-so-quick/[/url]1,排序的本质可以这样来表述:一组未排序的N个数字,它们一共有N!种重排,其中只有一种排列是满足题意的(譬如从大到小排列)。换句话说,排序问题的可能性一共有N!种。任何基于比较的排序的基本操作单元都是“比较a和b”,这就相当于猜数字游戏里面的一个问...
2010-12-16 15:25:28
236
原创 称球问题
[节选][url]http://mindhacks.cn/2008/06/13/why-is-quicksort-so-quick/[/url]1,问题:12个小球,其中有一个是坏球。有一架天平。需要你用最少的称次数来确定哪个小球是坏的并且它到底是轻还是重。 2,分析:(1)坏球可能是12个球中的任意一个,这就是12种可能性;而其中每种可能性下坏球可能轻也可能重。于是“坏球是哪...
2010-12-16 14:13:47
173
原创 [节选]知其所以然(续)
[来自][url]http://mindhacks.cn/2010/11/14/the-importance-of-knowing-why-part2/[/url]1,一个你不明白其证明的定理在我看来比不知道这个定理还要糟糕,因它给你造成一种懂了的错觉。2,所以我还有一个习惯,就是看到美妙的证明和解法总是会去一遍又一遍的去反复揣摩,试图理解想出这个证明的人到底是怎么想出来的,有没有...
2010-12-16 13:37:23
95
原创 C语言中的不定参数
1,最近刚刚知道C语言还有不定参数这么个东东。2,解决方法:三个宏的使用va_arg()、va_start()和va_end()上述的宏原型如下所示:[code="C"] type va_arg(va_list argptr, type);void va_end(va_list argptr);void va_start(va_list argptr, last_...
2010-12-15 12:28:26
247
原创 平均要取到第几个随机数才会让序列第一次下降
[转载][url]http://www.matrix67.com/blog/[/url]1,考虑这么一个游戏:不断在区间 [0, 1] 中概率均等地选取随机数,直到所取的数第一次比上一个数小。那么,平均需要抽取多少个随机数,才会出现这样的情况?答案:记 Pi 为第 i 次才取到小于前一个数的数的概率。则我们要求的就是 [table]|P1 + 2 * P2 + 3 * ...
2010-12-15 12:05:21
115
原创 输出一个数列的逆序数
1,这个问题算法导论讲归并排序时,提到过。找到一个实现代码,思路还是蛮清晰的。核心:对于两个有序序列,找逆序对,遍历一次即可。2,实现代码:[code="c++"]#include #include using namespace std ;int inv(int data[], int n){ int left = (n >> 1); ...
2010-12-10 20:39:03
340
原创 给出前序和中序序列,输出后序序列
1,给出一个实现代码:[code="c++"]#include #include void outputPro(char* pre, char* ord){ int len = strlen(pre); if (len != strlen(ord)) { printf("input error!\n"); r...
2010-12-10 11:46:29
146
原创 剖析浮点数
[转载][url]http://blog.csdn.net/masefee/archive/2010/01/30/5272554.aspx[/url] 这里历史和发展就不说了,直接从IEEE浮点标准说起。 在 IEEE 标准中,浮点数是将特定长度的连续字节的所有二进制位分割为特定宽度的[b]符号域,指数域和尾数域[/b]三个域,其中保存的值分别用于表示给定二进制浮点数中的符...
2010-12-10 10:39:34
140
原创 使用map和hash_map的效率问题
1,选择map容器,是为了更快的从关键字查找到相关的对象。与使用list这样的线性表容器相比,一可以简化查找的算法,二可以使任意的关键字做索引,并与目标对象配对,优化查找算法。在C++的STL中map是使用树来做查找算法,这种算法差不多相当与list线性容器的折半查找的效率一样,都是 O(log2N),而list就没有map这样易定制和操作了。 2,相比map,hash_map使用...
2010-12-09 19:49:03
206
原创 存在虚基类时,类对象的大小
1,实例代码:[code="c++"]#include using namespace std;class Top{protected: int x;public: Top(int n) { x = n; } virtual ~Top() {}};class Left : virtu...
2010-12-09 19:38:11
117
原创 关于父类的构造的顺序
1,没有虚基类的情况:[code="c++"]#include #include using namespace std;class A{public: A() { cout
2010-12-09 19:33:45
119
原创 关于empty class的大小
1,首先简要说明下为什么empty class的大小不是0?这是因为c++标准有个规定,操作符new object必须返回一个唯一的指针指向一个对象,如果empty大小为0,无疑底层的操作将是malloc(0)等等之类,则返回NULL或出错,因此设定其为1。实际应用中,如果一个empty作为一个子类的基类或虚基类,编译器都会作一些特殊处理,去掉这个额外的1。[code="c++"]...
2010-12-09 19:32:23
163
原创 JVM实现机制及内部基本概念
兴趣所致,搜了一些关于JVM的简单介绍,算是扫盲吧。1.JVM实现机制Java虚拟机就是一个小的计算机,有自己的指令集,有自己的文件系统,管理内部的表和数据,负责读取class文件里面字节码,然后转换成不同操作系统的CPU指令,从而使得Java程序在不同的操作统上顺利的跑起来。所以Window的JVM能把字节码转换成Window系统的指令集,Linux的JVM能把字节码转换成Lin...
2010-12-09 19:27:57
91
原创 感悟c++
1,最近一直在看云风的博客,渐渐地我也开始接受云风对于c++的态度了。引用孟岩一段话[quote]软件开发方面真正有价值的进步,应当是有利于用户、有利于项目管理、有利于解决领域问题,而不是有利于程序员。多年以来,主流语言和系统的很多改进,其目的都是为了让写程序的人感觉更爽,而与用户、管理和解决问题毫无关系。C++在这方面是带了一个很坏的头,又要追求强大的表达能力,又要追求不打折扣的效率,结果搞...
2010-12-09 19:25:36
109
原创 指向对象成员变量的指针。
1,工作定了后,把《Inside the C++ object model》又重新看了一遍,之前不太理解的差不多都看明白了,有空好好总结下发上来。这个算是其中的一个点吧,之前根本没留意,所以特意写一篇记录下。[code="c++"]#include using namespace std;class A{public: A (int m = 0, int ...
2010-12-09 19:18:39
111
原创 3, 大小端问题
1,留个代码,便于遗忘后快速想起来。[code="c++"]#include int main(){ union { unsigned char sa[4]; unsigned long lv; }u2; u2.lv = 0x12345678; printf("%x\n", u2.sa[0])...
2010-12-09 19:12:24
78
原创 面向对象的一些常见问题总结。
1,构造函数中调用虚函数的问题。注:一般编译器都会在执行完base subject的构造函数和调用用户代码之前,实施当前对象vptr的初始化工作。因此,如果当前对象内定义了某函数,构造函数中调用的一定是当前对象内的,virtual可以认为不存在。实例代码:[code="c++"]#include using namespace std;class Base...
2010-12-09 19:08:47
185
原创 关于C++的名字查找规则
1,总结一句话:由内向外,找到合适的即刻停止。实例代码:[code="c++"]#include using namespace std;class A{public: virtual ~A() {} virtual void f() { cout ...
2010-12-09 19:05:56
188
原创 输入是一个n*m的矩阵,要求找到其中最大的全0字矩阵
1,分析:这个题其实就是最大子矩阵,只不过把0的权设为1,其他的权设为负无穷,这样求出来的肯定是最大的全是0的矩阵,仔细看一下我得做法,用的是动态规划。2,实例代码:[code="C++"]#include const int Max_Int = 0xfffffff;int map[301][301],opt[301];int n, m, maxn;vo...
2010-11-25 12:16:23
1207
原创 一些常见的海量数据处理题目
很长时间没有更新blog了,先唠叨两句.这段时间发生了几件不大不小的事吧.(1)工作暂时签tencent了,会不会有变数谁也不知道.也许通向网易的路还没有完全堵死.(2)javaeye一度居然真的上不去了,于是正在考虑是否该有个新家了.(3)知道了云风,对网易更加的有爱了.言规正传,开始正式的内容.1,给定a、b两个文件,各存放50亿个url,每个url各占64字节...
2010-11-25 11:23:55
92
原创 继承下的名字查找规则,最近作用域
1,[code="C++"]#include using namespace std;class A{public: virtual ~A() {} virtual void f() { cout
2010-11-06 20:04:08
95
原创 虚基类和多重继承总结
1,虚基类,其构造函数总是在最后一个层次最先并且真正被执行。实例代码:[code="c++"]#include using namespace std;class A{public: A(const string& s) { cout ...
2010-11-06 19:54:27
129
原创 为什么构造函数,不能是virtual?
1,C++语言是静态语言,而把构造函数写成虚函数意味这可以动态构造。这是和C++静态语言特性相矛盾的,所以就C++语言本身来说,是不允许的。 2,虚函数是为了迟绑定吧,为什么要迟绑定?因为好多行为编译期确定不了,需要运行期确定并调用合适的函数去完成相应的功能。但是对象构造的行为是确定的,不管是不是多态,只要有new Object()这种动作,就一定会沿着继承的顺序依次执行对象的...
2010-09-25 15:24:21
581
原创 关于HTTPS
1,HTTPS(全称:Hypertext Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。 它是一个URI scheme(抽象标识符体系),句法类同http:体系。用于安全的HTTP数据传输。https:URL表明它...
2010-09-21 17:38:35
268
原创 关于ant
ant:一种编译打包工具.(1)Ant是一种基于Java的build工具。理论上来说,它有些类似于(Unix)C中的make ,但没有make的缺陷。(2)既然我们已经有了make, gnumake, nmake, jam以及其他的build工具为什么还要要一种新的build工具呢?因为Ant的原作者在多种(硬件)平台上开发软件时,无法忍受这些工具的限制和不便。类似于make的工具本质...
2010-09-21 17:32:43
138
原创 关于curl
1,简介:curl是一个利用URL语法在命令行方式下工作的文件传输工具。它支持很多协议:FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP。curl同样支持HTTPS认证,HTTP POST方法, HTTP PUT方法, FTP上传, kerberos认证, HTTP上传, 代理服务器, cookies, 用户名/密码认...
2010-09-21 17:28:42
77
原创 ssh公钥认证
1,原理: 密匙认证需要依靠密匙,首先创建一对密匙(包括公匙和密匙,并且用公匙加密的数据只能用密匙解密),并把公匙放到需要远程服务器上。这样当登录远程服务器时,客户端软件就会向服务器发出请求,请求用你的密匙进行认证。服务器收到请求之后,先在你在该服务器的宿主目录下寻找你的公匙,然后检查该公匙是否是合法,如果合法就用公匙加密一随机数(即所谓的challenge)并发送给客户端软件。客户端软件收...
2010-09-21 17:26:34
90
原创 不限数目的1、5、10、20、50面额的纸币,有多少种方法凑出100元
1,有不限数目的1、5、10、20、50面额的纸币,有多少种方法凑出100元 解答:实质就是暴力枚举[code="c++"]#include#includeusing namespace std;const int Len = 5;int ans = 0;int m[Len] = {50, 20, 10, 5, 1};int total[Len] = {...
2010-09-21 17:22:41
3238
原创 3.4 从无头单链表中删除节点
1,一段实例代码:[code="c++"]void DeleteListNode(node* pCurrent){ assert(pCurrent != NULL); node* pNext = pCurrent -> next; if (pNext == NULL) pCurrent = NULL; else { pCurrent -> next = ...
2010-09-21 17:21:12
66
原创 3.3 计算字符串的相似度
1,一步增加,删除,或修改一个字符。2,计算总步数,使得两个字符串相等。注:增加一个字符和删除一个字符实质是一样的。问题可以归结为:(1)一步操作后,再将A[2,...]和B[1,...]变成相同字符串。(2)一步操作后,再将A[1,...]和B[2,...]变成相同字符串。(3)一步操作后,再将A[2,...]和B[2,...]变成相同字符串。3,得到一种...
2010-09-21 17:20:36
71
原创 3.2电话号码对应英语单词
方法一、神奇的双重while循环。注:显然可以利用这种方法,打印出任意一个N维数组的任意组合。方法二、递归(实质就是DFS)实例代码:[code="c++"]#include#includeusing namespace std;//键盘数字上的字符char c[10][10] = { "", "", "ABC", "DEF", ...
2010-09-21 17:19:13
146
原创 3.1 字符串移位包含的问题:
1,题意:给定s1和s2,判定s2是否能够被s1做循环移位得到的字符串包含。2,解决:方法一:[code="c++"]#include#includeusing namespace std;bool isMatch(char* src, char* des){ int len = strlen(src); for (int i = 0; ...
2010-09-21 17:17:12
113
原创 2.10 寻找数组中的最大值和最小值
1,可以将者看成两个独立的问题。个需要比较N次,需要比较2*N次。2,我们可以两两分组。每一对中较小的放左边,较大放右边。 N/2次。奇数位比较N/2次,找到最小值。偶数位比较N/2次,找到最大值。总的比较次数:1.5N。缺点:破坏了原数组。3,维持两个变量min和max。取出两个数,相比较1次。较小的和min比较,决定是否更新min。同理,更新...
2010-09-21 17:15:53
114
程序员面试宝典(it找工作必备)
2010-03-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人