随笔分类 -  笔试(C++)

new与malloc的区别
摘要:1、new是c++中的操作符,malloc是c中的库函数。2、new不止分配内存,而且会调用类的构造函数,同时,析构时会调用析构函数。(申请一个类对象的指针时) malloc只分配内存,不会进行初始化类的工作,同样,free不会调用析构函数。3、内存泄漏对于malloc或者new都可以检查出来的,区别在于new可以指明是那个文件的那一行,而malloc没有这些信息。4、new 和 malloc效率比较 new 有三个字母, malloc有六个字母 new可以认为是malloc加构造函数的执行。new出来的指针是直接带类型信息的。而malloc返回的都是void指针。 一:new delete. 阅读全文

posted @ 2012-07-19 17:35 陈朋 阅读(521) 评论(0) 推荐(0)

一道腾讯前端试题,主要是算法
摘要:题目:有一组数字,从1到n(假设n=10000),从中任意删除了3个数,顺序也被打乱,剩余数字放在一个n-3的数组里,请找出丢失的数字,要求算法比较快。题目是前端的,但实际上还算一道算法题,下面是一个比较快的算法,据说是《编程珠玑》里面使用到的。int _tmain(int argc, _TCHAR* argv[]){ int aOld[] = {5,1,3,0,9,2,7}; //4,6,8 int* aNew = new int[11]; //实际上是要取现有数字的下标 for (int i = 0; i < 7; i++) { int temp... 阅读全文

posted @ 2012-07-02 17:09 陈朋 阅读(865) 评论(0) 推荐(0)

数据结构笔试(转)
摘要:一、如何判断一个单链表是有环的?(注意不能用标志位,最多只能用两个额外指针) struct node { char val; node* next;}bool check(const node* head) {} //returnfalse : 无环;true: 有环 一种O(n)的办法就是(搞两个指针,一个每次递增一步,一个每次递增两步,如果有环的话两者必然重合,反之亦然):bool check(const node* head) { if(head==NULL) return false; node *low=head, *fast=head->next; while(fast!=N 阅读全文

posted @ 2011-04-27 16:17 陈朋