CPlus
文章平均质量分 69
wangran51
这个作者很懒,什么都没留下…
展开
-
哈希函数
简介哈希方法学哈希函数和素数位偏向各种形式的哈希常用的哈希函数各版本哈希代码下载简介哈稀函数按照定义可以实现一个伪随机数生成器(PRNG),从这个角度可以得到一个公认的结论:哈希函数之间性能的比较可以通过比较其在伪随机生成方面的比较来衡量。一些常用的分析技术,例如泊松分布可用于分析不同的哈希函数对不同的数据的碰撞率(collision rat转载 2013-09-18 23:45:59 · 4679 阅读 · 0 评论 -
struct 与 class区别
C++中的struct对C中的struct进行了扩充,它已经不再只是一个包含不同数据类型的数据结构了,它已经获取了太多的功能。struct能包含成员函数吗? 能!struct能继承吗? 能!!struct能实现多态吗? 能!!! 既然这些它都能实现,那它和class还能有什么区别?最本质的一个区别就是默认的访问控制: 默认的继承访问权限struct是pu转载 2013-05-03 12:17:50 · 667 阅读 · 0 评论 -
2011阿里巴巴集团实习生招聘笔试题 C&C++
答案为自己整理的,欢迎批评指正。公共题选择题(每题5分)1. 若一棵二叉树具有10个度为2的结点,则该二叉树的度为0的结点个数是( )A:9 B:11 C:12 D:不确定 2.下列排序算法中,其时间复杂度和记录的初始排列无关的是( )A:插入排序 (预先排序,运行时间为O(N)) B:堆排序 C:快速排序转载 2013-05-02 15:38:24 · 9049 阅读 · 23 评论 -
STL Priority_Queue
priority_queue 调用 STL里面的 make_heap(), pop_heap(), push_heap() 算法实现,也算是堆的另外一种形式。先写一个用 STL 里面堆算法实现的与真正的STL里面的 priority_queue 用法相似的 priority_queue, 以加深对 priority_queue 的理解#include iostre转载 2013-05-02 23:03:36 · 871 阅读 · 0 评论 -
const pointer
const在函数前与函数后的区别一 const基础 如果const关键字不涉及到指针,我们很好理解,下面是涉及到指针的情况: int b = 500; const int* a = &b; [1] int const *a = &b;转载 2013-04-19 21:23:24 · 848 阅读 · 0 评论 -
cJsonFiles数据结构
先看json的数据结构c中没有对象,所以json数据是采用链表存储的view sourceprint?01.typedef struct cJSON {02.struct cJSON *next,*prev; // 数组 对象数据中用到03.struct cJSON *child; // 数组 和对象中指向子数组对象或值04.转载 2013-04-27 17:21:57 · 879 阅读 · 0 评论 -
在数组中找出3个数使得它们和为0
题目:给定一个集合S,试找出3个数a, b, c,使得a+b+c=0。也即从集合中找出所有的和为0的3个数。例如:集合S={-1,0, 1, 2, -1, 4},则满足条件的3个数有2对:(-1, 0, 1)和(-1, 2, -1)。注意(-1,1,0)与(-1,0,1)算同一个解,所以不用重复考虑。当然该例子集合的解也可以写成:(0, 1, -1)和(2, -1, -1)。转载 2013-04-27 11:56:39 · 8085 阅读 · 1 评论 -
最长重复子串
问题描述给定一个字符串,求出其最长重复子串例如:abcdabcd最长重复子串是 abcd,最长重复子串可以重叠例如:abcdabcda,这时最长重复子串是 abcda,中间的 a 是被重叠的。直观的解法是,首先检测长度为 n - 1 的字符串情况,如果不存在重复则检测 n - 2, 一直递减下去,直到 1 。这种方法的时间复杂度是 O(N * N * N),其中包括三部转载 2013-04-26 16:19:15 · 950 阅读 · 0 评论 -
求一个字符串中连续出现次数最多的子串
http://blog.csdn.net/imcdragon/article/details/6838565解答二http://hi.baidu.com/icyday315/item/040aadab454c8a97151073da合并思路(不能重复abcdabcd 就不行了,abcda是最长重复子串)/* Author: Mcdragon Date: 1转载 2013-04-26 10:08:52 · 766 阅读 · 0 评论 -
amazon题代码
First Phone Interview:1.提出尽可能多的方法使一个method可以返回多个不同type的值2.reverse string 比如 "I have a dream" -> "dream a have I"3.判断一个binary tree是不是对称的Second Phone Interview:1.给a list of number,返回前top K转载 2013-04-25 16:01:04 · 1676 阅读 · 0 评论 -
C++ STL Pair
Pair类型概述pair是一种模板类型,其中包含两个数据值,两个数据的类型可以不同,基本的定义如下: pair a;表示a中有两个类型,第一个元素是int型的,第二个元素是string类型的,如果创建pair的时候没有对其进行初始化,则调用默认构造函数对其初始化。 pair a("James", "Joy");也可以像上面一样在定义的时候直接转载 2013-04-26 11:22:17 · 8188 阅读 · 1 评论 -
字符串面试题
一般面试字符串的题目分四种:1, 基本运算(求长度,连接,比较)2. 格式转换(atoi, itoa) 3.字符串翻转 4. 模式匹配。1. 基本运算a. 赋值操作函数原型:int StrAssign(const char *s, char *t)函数说明:将s的内容付给t函数定义:int StrAssign(const char *s, char *t){ char转载 2013-04-25 15:45:16 · 698 阅读 · 0 评论 -
C++ struct constructor
下面看看一道关于C++中笔试题:// FileName:test.cpp1: #include 2: struct test3: {4: test(int n){5: printf("test(%d)\n",n);6: }7: test(){8: printf("t转载 2013-05-03 18:11:50 · 2066 阅读 · 0 评论 -
STL_Hash_map
在windows 和 linux下引入hash_set、hash_map头文件推荐使用方法:在源代码的前面写入一下代码:// just for "#include " in linux#if __GNUC__>2#include #include using namespace __gnu_cxx;#else#include #include转载 2013-05-07 11:36:50 · 991 阅读 · 0 评论 -
C++ 虚函数概念
C++中的继承与虚函数各种概念http://www.cnblogs.com/xkfz007/archive/2012/02/16/2354444.html 虚继承与一般继承虚继承和一般的继承不同,一般的继承,在目前大多数的C++编译器实现的对象模型中,派生类对象会直接包含基类对象的字段。而虚继承的情况,派生类对象不会直接包含基类对象的字段,而是通过一个间接的指针去存取基类对转载 2013-05-27 16:31:13 · 880 阅读 · 0 评论 -
哈希表冲突解决
在实际应用中,无论如何构造哈希函数,冲突是无法完全避免的。1 开放地址法 这个方法的基本思想是:当发生地址冲突时,按照某种方法继续探测哈希表中的其他存储单元,直到找到空位置为止。这个过程可用下式描述: H i ( key ) = ( H ( key )+ d i ) mod m ( i = 1,2,…… , k ( k ≤ m – 1)) 其中: H ( key )转载 2013-09-03 12:38:12 · 8584 阅读 · 0 评论 -
求字符串组合数
#include#include#includeusing namespace std;#includevoid Combination(char *string ,int number,vector &result);void Combination(char *string){assert(string != NULL);vector res转载 2013-08-29 10:57:34 · 3213 阅读 · 0 评论 -
C++创建 可以实例化但不能继承的类
class vb{private: vb(){} friend C; } //vb这个是一个基类,它的构造函数是private,因此它根本就无法被创建。但是我们显式增加了一个friend C。因此只有C才能创建vb。这是关键点。 class C:virtual public vb{ };//C虚拟继承自vb,这样在构造C的时侯,需要转载 2013-08-28 12:58:54 · 3481 阅读 · 0 评论 -
Setting Gdb on Windows
GDB on WindowsFrom OHRRPGCE-WikiJump to: navigation, searchThis article does not meet the standard of quality we would like to have. Feel free to revise it and make it better by using th转载 2013-08-12 23:16:36 · 935 阅读 · 0 评论 -
Setting up compiler in Windows Eclipse for cpp
Setting up a compilerPrev NextSetting up a compilerUnfortunately Eclipse only provides theIntegrated Development Environment (IDE) but it is missing the ac转载 2013-08-12 22:42:50 · 900 阅读 · 0 评论 -
C++中的空类,编译器默认可以产生哪些成员函数
一个空的class在C++编译器处理过后就不再为空,编译器会自动地为我们声明一些member function,如果你写 class Empty{}; 就相当于: class Empty { public: Empty(); Empty(const Empty&); ~Empty(); Empty& operator=(const Empty& rh转载 2013-08-22 19:19:27 · 5334 阅读 · 0 评论 -
C语言长度为0的数组
前面在看Xen的源码时,遇到了一段代码,如下所示:注意上面最后一行的代码,这里定义了一个长度为的数组,这种用法可以吗?为什么可以使用长度为0 的数组?长度为的数组到底怎么使用?……这篇文章主要针对该问题进行简单的讲解。废话不多说了,现在就开始。长度为的数组在标准c和c++中是不允许的,如果使用长度为的数组,编译时会产生错误,提示数组长度不能为。但在GNUc中,这种用法却是合转载 2013-06-28 11:43:32 · 728 阅读 · 0 评论 -
C++:从子类访问父类的私有函数
C++:从子类访问父类的私有函数转自 龙音阁http://blog.sina.com.cn/dragonsound 感谢原作者的工作(2009-09-01 22:44:21)标签: 虚函数 c private f1 it 众所周知,c和c++的数组都是不安全的,因为无论c还是c++都不提供数组边界检查功能,这使得数组溢出成为可能。从某个意义上说,c和c++是一种缺少转载 2013-06-07 11:33:23 · 1605 阅读 · 0 评论 -
C++继承机制
从语言和概念的角度来说,子类继承父类是继承了所有protected和public非static成员(static成员是共享而不是继承),而成员包括函数和数据。所以从概念上来说,成员函数和成员变量都被继承了。从实现上来说,实现要在外显上不违反概念,在内部可以非常随意。所有的实现子类继承父类成员函数只是子类共享了父类的函数,没有两份拷贝。编译器知道父类的某成员函数的地址,那么在子类调用父类的该方法时转载 2013-06-07 11:35:29 · 1970 阅读 · 0 评论 -
C++ 虚函数表解析
C++ 虚函数表解析 陈皓http://blog.csdn.net/haoel 前言 C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,R转载 2013-05-13 11:10:01 · 557 阅读 · 0 评论 -
Endian Bitfiled
Endianess是个比较tricky的问题,特别是当数据在不同类型间转换时。 先看看在一台32位的little-endian机器上,以下代码的行为: C代码 #include // memcpy #include // printf typedef struct { char a; char b;转载 2013-05-27 14:42:45 · 688 阅读 · 0 评论 -
C++class默认生成4个函数
【C/C++和指针】类默认生成的四个函数序:对于一个空类,编译器默认生成四个成员函数:默认构造函数、析构函数、拷贝构造函数、赋值函数一,默认构造函数 默认构造函数(default constructor)就是在没有显式提供初始化式时调用的构造函数。它由不带参数的构造函数,或者为所有的形参提供默认实参的构造函数定义。如果定义某个类的变量时没有提供初始化式就转载 2013-03-27 21:55:43 · 8729 阅读 · 1 评论 -
在继承中派生类成员的访问权限测试
派生类对自身基类的private成员没有访问权限,对基类对象的protected成员没有访问权限,对派生类对象的(基类之外)的private和protected成员具有访问权限。由于C++基础不好,平时也不用它,导致今天才纠正一个非常关键的错误,类的访问权限,是对类而言的,而不是对类的对象而言的。一直都理解错了。这句话都没脸写出来,还是写下来了。下面是一段简答的测试代码。对于调转载 2013-04-24 19:44:34 · 933 阅读 · 0 评论 -
C++中 public,protected, private 访问标号小结
C++中 public,protected, private 访问标号小结第一:private, public, protected 访问标号的访问范围。private:只能由1.该类中的函数、2.其友元函数访问。不能被任何其他访问,该类的对象也不能访问。protected:可以被1.该类中的函数、2.子类的函数、以及3.其友元函数访问。但不转载 2013-04-24 14:58:14 · 579 阅读 · 0 评论 -
赋值语句的返回值
#include using namespace std;int main(){char A[4] = {'a', 'b', 'c', '\0'};char B[4] = {'A', 'B', 'D', '\0'};char* a = A;char* b = B;while(1){if((*b++ = *a++) == '\0'){break;}原创 2013-03-21 17:57:42 · 2568 阅读 · 0 评论 -
const 指针与指向const的指针
const 指针与指向const的指针当使用带有const的指针时其实有两种意思。一种指的是你不能修改指针本身的内容,另一种指的是你不能修改指针指向的内容。听起来有点混淆一会放个例子上来就明白了。 先说指向const的指针,它的意思是指针指向的内容是不能被修改的。它有两种写法。 const int* p; (推荐) int const* p转载 2013-04-04 16:59:18 · 534 阅读 · 0 评论 -
Fast implementation/approximation of pow() function in C/C++
老外的帖子Sure - it's easy if you have exponential and natural log functions.Since y = x^n, you can take the natural log of both sides:ln(y) = n*ln(x)Then taking the exponential of both sid原创 2013-03-29 16:42:37 · 955 阅读 · 0 评论 -
sizeof
struct COW {int num;int MakeMilk;}; COW* cow = NULL; cow = (COW* )malloc(sizeof(COW)*n); sizeof(COW)= 8 :two Int sizeof(cow) = 4 :pointer size, because cow is the dynamic array原创 2013-03-01 13:48:58 · 404 阅读 · 0 评论 -
二维数组及其指针基础
编程学习-二维字符串数组的初始化-动态内存分配动态内存分配1.堆内存分配 :C/C++定义了4个内存区间:代码区,全局变量与静态变量区,局部变量区即栈区,动态存储区,即堆(heap)区或自由存储区(free store)。堆的概念:通常定义变量(或对象),编译器在编译时都可以根据该变量(或对象)的类型知道所需内存空间的大小,从而系统在适当的时转载 2013-02-28 11:07:22 · 606 阅读 · 0 评论 -
C语言中,当计算字符数组长度时,用sizeof 和strlen 的原理及两者的区别
字符数组的长度计算:必须以终止符’/0'作为边界,但对字符数组赋值时,有两种方式:1:定义时用字符初始化(1)char chs[7] = {'a', 'c', '0', 'z', '3','d'}; // 长度为6 上式等价于:(2)char chs[7] = {'a', 'c', '0', 'z', '3','d', '/0'}; // 长度为6 也等价于转载 2013-02-27 15:07:45 · 838 阅读 · 0 评论 -
C++ Map Source
/* * ===================================================================================== * * Filename: main.cpp * * Description: * * Version: 1.0 * Created原创 2012-12-21 11:39:30 · 520 阅读 · 0 评论 -
C++ Map传递参数
map可以被看做是普通变量一样可以直接赋值,同时map也可以看做普通变量一样在函数间以值传递或者以指针传递方式传递。下面是一个小小的例子:#include #include #include using namespace std;void translate(map temp_map);//map直接作为参数传递void translate(map *pMap);//转载 2012-12-20 17:29:32 · 21210 阅读 · 1 评论 -
C++ Map用法
/************************************************************************** Map的特点: 1、存储Key-value对* 2、支持快速查找,查找的复杂度基本是Log(N)* 3、快速插入,快速删除,快速修改记*/*******************************************转载 2012-12-20 17:14:14 · 986 阅读 · 0 评论 -
C++ eof()函数陷阱
C++中用eof()检查是否到达文件结尾分类: C 编程 2007-06-26 11:15到达文件结尾有两种可能的解释:一是当程序从一个文件读取数据时,在程序读取文件中的最后一项之后就立即出现文件结束的条件。另一种是只有当程序想越过文件的最后一项进行读取时才出现文件结束的条件。Ada和Pascal采用第一种解释。在这些语言中,一个从外部文件读转载 2012-12-20 16:49:38 · 3681 阅读 · 0 评论 -
C++ File IO
在C++中如何实现文件的读写?作者: infobillows 发表日期: 2007-04-03 21:33 点击数: 465一、ASCII 输出为了使用下面的方法, 你必须包含头文件(译者注:在标准C++中,已经使用取代,所有的C++标准头文件都是无后缀的。)。这是 的一个扩展集, 提供有缓冲的文件输入输出操作. 事实上, 已经被包含了, 所以你不必包含所有这两个文件,转载 2012-12-18 14:50:30 · 669 阅读 · 0 评论