编程语言
文章平均质量分 67
计算机科学家的世界
荣耀的背后刻着一道孤独
展开
-
VS C++ compiler的一个bug
我在VS2010里面写入了如下代码:#include #include using namespace std;templatevoid function(const T& value){ cout<<typeid(value).name()<<endl;}class CT{public: friend void function(int iValue);};原创 2012-06-29 14:07:32 · 1800 阅读 · 3 评论 -
2014-04-03某小公司笔试题目
同学让我帮忙解答的,题目如下(仅两个题目)先说一下第一个题目,第一题的意思是给一个数组,然后给一个下标k,让你求出在第k个之前的且比k小的数的和,显然一次遍历就解决答案。代码如下:int sum(int* src,int len,int k){ int x= 0; for(int i= 0; i< k&&i<len; ++i){ if(src[i]< src原创 2014-04-03 19:38:01 · 2279 阅读 · 0 评论 -
2014-04-19编程之美初赛题目及答案解析
第一题:描述一般来说,我们采用针孔相机模型,也就是认为它用到的是小孔成像原理。在相机坐标系下,一般来说,我们用到的单位长度,不是“米”这样的国际单位,而是相邻像素的长度。而焦距在相机坐标系中的大小,是在图像处理领域的一个非常重要的物理量。假设我们已经根据相机参数,得到镜头的物理焦距大小(focal length),和相机胶片的宽度(CCD width),以及照片的横原创 2014-04-19 15:51:02 · 4423 阅读 · 13 评论 -
2014-03-29.阿里实习生招聘笔试题目
题目:阿里2014-03-29实习生招聘笔试题目重新更新了部分答案阿里2014实习生笔试题目与答案解析与参考答案第一题选C,不解释吧,按位与就行 第二题选D,不解释,2*3*sizeof(int*)=48(64位机器上是8字节一个指针) 第三题选C,我不确定,不过,应该是的 第四题选D,明显考的是补码 第5题选D,果断访问错误(这是Java的代码) 第6题选B,大家都懂 第7题果断A啊原创 2014-03-30 00:36:14 · 22679 阅读 · 80 评论 -
2014-04网易、微软、百度、腾讯、阿里实习生招聘经验与经过
网易、多益、百度、腾讯、阿里、微软实习招聘笔试及面试全过程原创 2014-04-28 21:31:19 · 3776 阅读 · 4 评论 -
无锁队列的原理与实现
最近几天在思考无锁队列,看了相关文章,也读了一些博客,最后写了一份代码,代码实现对在多线程环境下对队列的读和写是不需要加锁的。代码如下所示:#include #pragma comment(lib, "Kernel32.lib")templateclass LcFQue{//lock free queuepublic: struct QueNode{ QueNode *原创 2014-10-10 17:10:36 · 4860 阅读 · 0 评论 -
用户空间锁的设计与实现
昨天完成了无锁队列的实现,然后思考了一下锁的原理,锁的核心无非是保证有一个变量需要被原子性地更新,比如,我们用一个bool x,表示锁,当我们获取锁的时候,我们需要保证的是锁能够只在同一时间被多个线程中的一个线程去读取和更新,在逻辑上有如下的代码:bool GetLock(bool& x){ if(x){ x= false;原创 2014-10-10 17:29:45 · 2194 阅读 · 0 评论 -
不使用全局函数如何编写线程类
以下讨论内容仅限于Window系统和X86硬件架构。 从汇编角度看程序,只能看到mov,sub,div,xcmpchg等指令,函数,结构体,指针,数组等中级编程语言中的语法糖均不存在,至于C++,Java等高级语言中的对象,类,虚函数等更是不复存在,那么我们在高级语言中建议的语法糖在哪呢,它们是怎么被转化到汇编的呢?......1,汇编之于函数调用原创 2015-11-06 22:16:36 · 893 阅读 · 0 评论 -
C++临时对象那些事儿
C++大概是这个世界上最飘逸、成功、失败的语言吧,临时对象是C++语言中最复杂的东西之一。以下代码段新手大概经常会写吧:std::string FetchFormat(){ return "%d";}int main(){ printf(FetchFormat().c_str(), 100);}这个代码在大多数时,会跑得“很好”,然而,如果有一天你听到崩溃的碎片声,你也不原创 2016-04-13 16:55:28 · 5610 阅读 · 2 评论 -
HiHocoder 1288 FontSize
#1288 : Font Size时间限制:10000ms单点时限:1000ms内存限制:256MB描述Steven loves reading book on his phone. The book he reads now consists of N paragraphs and the i-th paragraph contains原创 2017-03-28 20:12:02 · 791 阅读 · 0 评论 -
#1304 : 搜索一·24点
#1304 : 搜索一·24点时间限制:10000ms单点时限:1000ms内存限制:256MB描述周末,小Hi和小Ho都在家待着。在收拾完房间时,小Ho偶然发现了一副扑克,于是两人考虑用这副扑克来打发时间。小Ho:玩点什么好呢?小Hi:两个人啊,不如来玩24点怎么样,不靠运气就靠实力的游戏。小Ho:好啊,好啊。原创 2017-03-29 20:46:52 · 971 阅读 · 0 评论 -
2011-10-15腾讯校园招聘笔试题目与参考答案
这里的题目收集于网上,真实信应该是真的 希望能求职的同学有所帮助。1,下列排序算法中,初始数据集的排序程序对算法性能无影响的是()A,插入排序B,堆排序 C,冒泡排序,D,快速排序 答案:B,冒泡的复杂度恒定为O(n^2),插入排序最差是O(n^2),最优化为O(n);堆排序建堆的时间是O(n),但是,排序的过程是O(nlogn),固定不变;冒泡排序虽然大家都认为是O(n^2),但是,优化的冒泡是使用一原创 2014-04-02 16:39:19 · 2789 阅读 · 1 评论 -
《Windows编程零基础学》__0
首先很开心申请到了这一个专栏《Windows编程零基础学》这是第一篇文章,在这里,我将讲述一些基础的知识。什么是Windows编程所谓Windows编程就是在Windows平台上开发,并且运行于Windows平台上的程序,当然,开发的时候运用的东西是Windows API或者封装之后的Windows API。为什么要学Windows编程有人说,我学的是Java,我不需原创 2013-07-31 15:06:50 · 3640 阅读 · 5 评论 -
中缀表达式求值与LL(1)方法
一个不需要使用二叉树和stack的中缀表达式求值算法原创 2013-07-05 17:47:23 · 2245 阅读 · 0 评论 -
教你用Windows API 写一个Thread类(不使用static哦)------(4)
这一篇文章中主要是讲解怎么写代码把以上3篇文章的理论用起来,写出一个能用的Thread类(只是模型)我在第3篇中提到了,要想把类的成员函数做Thread函数,一定要在一个时候把this指针赋值给ecx,问题是在类的成员函数里面是不太可能做这种事情的,因为如果你要让fun成为线程函数,你就需要在别的函数里面初始化ecx,这样感觉有点多余。我用的最简单的一个方法是写一段机器代码,在这个机器代码里面原创 2012-07-18 18:37:53 · 2537 阅读 · 0 评论 -
C和C++关于变量声明的区别以及一个矛盾的现象
什么都不说了,先贴代码吧,在VS2010里面输入以下代码(MAC Book没电了(电源不想找,不能在MAC OS XCode里面测试了))//A.c fileint iValue;//B.c fileint iValue;//main.c file#include extern int iValue;int main(){ printf("%d\n", iValu原创 2012-06-30 23:48:58 · 2006 阅读 · 1 评论 -
教你用Windows API 写一个Thread类(不使用static哦)------(3)
在这文章里面,我主要解释class里面的函数调用原理,首先给出测试代码如下:class CBase{public: void Hello(){ }};int main(){ CBase base; base.Hello();} 同样地,按照前面文章讲解的方法,汇编得到以下main.asm,如下:; Listing generated by Micro原创 2012-07-18 18:18:07 · 2065 阅读 · 0 评论 -
教你用Windows API 写一个Thread类(不使用static哦)------(1)
关于Windows API 的线程函数CreateThread的使用MSDN有如下说法:The CreateThread function creates a thread to execute within the address space of the calling process.HANDLE CreateThread( LPSECURITY_ATTRIBUTES lpThr原创 2012-07-18 13:04:33 · 2202 阅读 · 1 评论 -
教你用Windows API 写一个Thread类(不使用static哦)------(2)
这一文章中我们主要分析VS平台对于函数调用的编译处理,首先我们看一个简单的例子,代码如下: void Hello(){ } int main(){ Hello(); } 然后在VS Command Prompt下面用cl -FA main.cpp 编译一下,你会得到一个汇编的文件main.a原创 2012-07-18 17:41:25 · 1713 阅读 · 0 评论 -
浮躁的IT,浮躁的CSDN
我发现太多的人都只关注于jsp,.net等比较新的比较easy的技术,而对c++,汇编,数据结构,算法......这些东西都不是非常有兴趣,对使用系统接口的api编程不是特别有兴趣.另外,在csdn上,大家回复问题的时候一般都只看简单的回答(当然,一些写得比较长的更多的时候是混分的),而且,那些回答很少能有真正有意义的.问题:大家这是怎么了,我们的IT这是怎么了?我们的CSDN原创 2012-10-08 22:13:22 · 3265 阅读 · 18 评论 -
template实例化导致代码膨胀的后果(编译器编译才20行的代码就死掉哦)
首先,说明一个我电脑的配置如下:操作系统: MAC OS Lion 10.7.3(64 bit)CPU: Intel I5内存: 三星DDR3 1333 4G编译器: XCode 4.3.2 (64 bit) 代码如下: #include//author:1025679612@qq.co原创 2012-07-03 09:59:42 · 2505 阅读 · 0 评论 -
static inline与内部、外部链接对象
一个由inline引起的讨论以下函数定义有问题么://function.hVoid hello(){ Printf(“hello,world”);} 一般人看起来肯定觉得不对,因为我们基本上只把函数定义放在cpp里面,然后定义一个.h声明一下,在使用的地方include 一下这个.h就Ok了。可是为什么要这样做呢?换句话说,如果我们按上面的方法定义hel原创 2013-04-16 18:56:41 · 3038 阅读 · 1 评论