随笔分类 -  c++

C++与javascript对比
摘要:接触javascript应该有三个月了,但是一直没有认真去学习这门语言的一些特性,现在结合C++的语言特性来分析一下,对自己脑海中的知识做个总结。1、C++是静态语言,js是动态语言。区别如下:静态语言:1.在不执行的时候也能够做类型检测,可以一定程度上的检测出一些逻辑错误。但是过多的声明使得程序变得冗余。2.编写代码开始的时候就要考虑变量和算式应该是什么类型,有利于编写好的、高可用性的程序。3.对编译器提示有作用,同时也对理解代码有作用。问题:灵活性不够,不定义类型无法写程序。动态语言:1.最大优点是代码简洁。2.十分灵活。问题:运行速度相对会慢一些,要做类型检查。最大缺点是不执行就无法检测 阅读全文

posted @ 2011-10-15 02:42 dead_horse 阅读(4862) 评论(0) 推荐(2)

g++基础知识
摘要:一、编译过程: 1)预处理,生成.i文件 2)转换成为汇编语言,生成.s文件 3)汇编变为目标代码(机器代码),生成.o文件 4)链接目标代码,生成可执行程序。 二、常用编译选项 tips:选项必须独立给出:‘-pg’和‘-p -g’完全不同 -c:编译或汇编源文件,不做连接。 G++ -c test.cpp输出test.o -o file:制定输出文件为file -Wall: 输出所有编译警告(最好加上) -Dmacro=XXX:定义宏。 -shared:生成一个共享库文件 g++ -shared -o libtest.so test.o -fPIC:生成位置无关目标代码,适用... 阅读全文

posted @ 2011-09-22 03:59 dead_horse 阅读(438) 评论(0) 推荐(0)

STL算法(STL源码剖析)
摘要:lower_bound&upper_bound是二分查找的一种版本,在已排序的区间中寻找可插入value的第一个位置和第一个不小于value的位置。lower_bound的实现(forward_iteratror版本,其random_access_iterator版本不需要用distance函数,直接用+):template<classForwardIterator,classT,classDistance>ForwardIterator__lower_bound(ForwardIteratorfirst,ForwardIteratorlast,constT&val 阅读全文

posted @ 2011-06-08 01:06 dead_horse 阅读(326) 评论(0) 推荐(0)