摘要:
vs代码生成有/MT,/MTd,/Md,/MDd四个编译选项,分别代表多线程、多线程调试、多线程DLL、多线程调试DLL。 编译时引用的lib分别为libcmt.li、libcmtd.lib、msvcrt.lib、msvcrtd.lib。 当你使用外部的库时,你引用的库用的编译选项和你当前项目用到... 阅读全文
摘要:
1.编译器会单独编译每个cpp文件。头文件会复制到cpp文件中。 2.有时会遇到这样的一个问题a.cpp要调用b.cpp中的函数,而b.cpp又要调用a.cpp中的函数。这就牵扯到相互调用。这时如果我们把b.h中包含a.h,a.h中包含b.h。这时后编译会出现错误。解决的办法是将a.h包含在b... 阅读全文
摘要:
当你不使用这个模板函数或模板类,编译器并不实例化它,当你使用时,编译器需要实例化它,因为编译器是一次只能处理一个编译单元,也就是一次处理一个cpp文件,所以实例化时需要看到该模板的完整定义。所以都放在头文件中。 这不同于普通的函数,在使用普通函数时,编译时只需看到该函数的声明即可编译,而在链接... 阅读全文
摘要:
stack介绍:先进后出实现C++STL,栈有两个参数:template> class stack:参数示意: T:元素类型 Container:被用于存储和访问元素的类型成员函数:1.stack:stackexplicit stack(const Container& ctnr = Contain... 阅读全文
摘要:
Q:给定一个整数N,那么N的阶乘N!末尾有多少个0呢?例如:N = 10,N! = 3628800, N!的末尾有两个0分析与解法: 有些人碰到这样的问题,是不是要完整的计算出N!的值?如果溢出怎么办?事实上,如果我们从“哪些数相乘能得到10”这个角度考虑,问题就变得简单了。 首先考虑,如果N!... 阅读全文
摘要:
MakeFile MakeFile关系到整个工程的编译规则。一个工程的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个she... 阅读全文
摘要:
一般情况下,在乘以或者除以2的n次方时采用移位的方法,这样比直接相乘或者相除效率高的多。比如2*4可以用2>1来表示。 效率高的原因,涉及到CPU中运算器的运算方法问题。 阅读全文
摘要:
Given two sorted interger arrays nums1 and nums2,merge nums2 into nums1 as one sorted array.Note:You may assume that nums1 has enough space(size that ... 阅读全文
摘要:
归并排序是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。 归并过程为:比较a[i]和a[j]... 阅读全文