
C/C++
YourGodFather
关注C/C、Java、Python、PHP、linux编程、Javascript、jquery、Linux内核、Hadoop、Hbase、NoSql、移动互联开发等
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
sizeof('a') 等于多少?
// test.c// yangming// 2012.01.02#include int main(int argc, char *argv[]){ char ch = 'a'; printf("sizeof(ch)=%d, sizeof(char)=%d, sizeof('a')=%d", sizeof(ch), sizeof(char), sizeof('a')原创 2012-01-02 18:47:35 · 1863 阅读 · 0 评论 -
关于C++中处理new操作失败的处理方法
经常会看到下面这样的C++代码:int* p = new int [1024];if (p == NULL) { // new failure handle}其实,在现在C++中,无论new失败与否,这段if代码永远没有机会执行。现代C++标准指出,new操作要么成功,要么抛出异常(抛出异常意味着异常语句后面的普通语句都无法执行)。较早的C++确实在new失败后会返回NULL原创 2012-10-26 00:46:41 · 710 阅读 · 0 评论 -
求集合的全排列
设R={r1,r2,...,rn}是要进行排列的n个元素,Ri = R-{ri}.集合 X 中元素的全排列记为Perm(X)。(ri)Perm(X)表示在全排列Perm(X)的每一个排列上加前缀ri得到的排列。R的全排列可归纳定义如下:1)、当 n = 1时, Perm(R) = (r),其中r是集合R中唯一的元素;2)、当 n >1时, Perm(R)由(r1)Perm(R1),(r原创 2012-10-05 17:57:20 · 779 阅读 · 0 评论 -
算法之旅(四):硬币找零问题
硬币找零问题一个经典问题,也是阐述动态规划法几乎必讲的一个例子。硬币找零问题描述:现存在一堆面值为 V1、V2、V3 … 个单位的硬币, 各单位的硬币数目不限,问最少需要多少个硬币才能找出总值为 T 个单位的零钱?比如: 假设这一堆面值分别为 1、2、5、21、25 元,需要找出总值 T 为 63 元的零钱。基于动态规划的思想,我们可以从目标值为 1 元开始计算出最少需要几个硬币,原创 2012-09-30 22:56:36 · 1490 阅读 · 0 评论 -
位运算的应用
1、求两整数的平均数如果直接使用(x+y)/2,则容易发生溢出,使用下面的位运算则可以避免这种情况:int average(int x, int y){ return (x&y + (x^y)>>1);}或者定义为宏:#define AVERAGE(x, y) (((x)&(y) + ((x)^(y))>>1))分析:从二进制相加的角度来观察,我们可以将x和y都原创 2012-09-22 21:36:00 · 346 阅读 · 0 评论 -
由1-7的随机整数函数构造1-10随机整数函数
题目:已知有个rand7()的函数,返回1到7随机自然数,让利用这个rand7()构造rand10() 随机1~10。分析:要保证rand10()在整数1-10的均匀分布,可以构造一个1-10*n的均匀分布的随机整数区间(n为任何正整数)。假设x是这个1-10*n区间上的一个随机整数,那么x%10+1就是均匀分布在1-10区间上的整数。由于(rand7()-1)*7+rand7转载 2012-10-11 17:54:07 · 473 阅读 · 0 评论 -
不用循环、三元操作符、判断及分支结构用用printf输出1-1000间的所有数
今天在某公司面试遇到的题目当时想了一会,应该是用递归做,关键在于递归怎么结束.。于是写下了如下的代码,代码比较丑陋,求甚解void Print_Go(int cur, int end);void Print_Stop(int cur, int end);typedef void (*pFunc)(int, int);pFunc Funcs[] = {Print_Go, Prin原创 2012-10-10 23:08:12 · 457 阅读 · 0 评论 -
算法之旅(二):输入一个正数n,输出所有和为n 连续正数序列
题目:输入一个正数n,输出所有和为n 连续正数序列。例如输入15,由于1+2+3+4+5=4+5+6=7+8=15,所以输出3个连续序列1-5、4-6和7-8。分析:这是网易的一道面试题。这道题和本微软面试100 题系列V0.1 版的第14 题有些类似。我们可用两个数small 和big分别表示序列的最小值和最大值。首先把small 初始化为1,big 初始化为2。如果从small原创 2012-09-12 14:20:37 · 1460 阅读 · 0 评论 -
算法之旅(三):求一个数组的最长递减子序列
创新工场面试题:求一个数组的最长递减子序列,例如{9,4,3,2,5,4,3,2}的最长递减子序列为{9,5,4,3,2} 思路:这是很经典的一个问题,用动态规划解决。设源数组为A,我们定义一个长度与A相同的辅助数组为B,B[i]表示以A[i]结尾的最长递减序列的长度。举个简单的例子,如果A[i]大于之前的所有元素,那么以A[i]为结尾的最长递减序列只能为A[i]本身,则B[i] =原创 2012-09-12 21:58:51 · 1375 阅读 · 0 评论 -
泛型编程与STL系列——Nonmutation Algorithms(一)
泛型编程与STL学习笔记开篇。本系列博客主要是笔者《STL源码剖析》、《泛型编程与STL》、《Effective STL》及《C++设计新思维》的学习笔记与感悟。一、不改变操作对象内容的算法1、线性查找(Linear Search)1.1、find函数原型:templateInputIterator find(InputIterator first, InputIter原创 2012-08-26 16:18:45 · 518 阅读 · 0 评论 -
Boost Getting Started 安装文档(翻译1.33版本)
<!--.STYLE1 {font-family:"宋体"}--> . 首页. Boost库介绍. 开发者. FAQ . 了解更多概要下载.zip 文件.tar.gz and .tar.bz2 文转载 2012-08-31 23:03:36 · 394 阅读 · 0 评论 -
VS2008+Boost 1_46_1+STLPort-5.2.1安装及使用配置手记(备忘)
C++0x标准据称快要发布了,其中添加了很多Boost中的内容,以前仅仅看过Boost的书本,但却没有实际来编写代码,现在啊该是时候了,要不然真是要落伍了!!!使用Boost的头一件事就是安装和配置开发环境,在网上看了不少资料,也试着尝试了一下,失败了很多次,琢磨了半天,参考Boost官方文档和相关书籍,终于搞定了(太笨了!!!)。写这篇博客有两个目的:一是备忘,以后好参考参考,毕竟是自己写的东西,温习起来易懂;二来是为了做个纪念,马上就要到公司报到了,宣告学生时代就此暂告一段落(关注优快云已经有原创 2011-04-13 18:28:00 · 3202 阅读 · 6 评论