C&C++小经验汇总
文章平均质量分 54
seagullyoyo
for the load your god is with you whereever you go
展开
-
freopen用法
在做acm题目的过程中,我们需要在本地机器上调试。调试过程中,如果输入数据少还可以接受,但如果输入数据很庞大的话,我们就很难忍受一次又一次的重新输入和调试了。通过google,找到一种简便的方法,那就是freopen函数。 使用freopen函数可以解决测试数据输入问题,避免重复输入,不失为一种简单而有效的解决方法。 下面为函数的简介,详细可参见 http://www.转载 2014-03-11 15:52:33 · 3410 阅读 · 0 评论 -
位运算笔记
2.5 亿个数的去重在 2.5 亿个整数中找出不重复的整数,注,内存不足以容纳这 2.5 亿个整数分析:采用 2-Bitmap(每个数分配 2bit,00 表示不存在,01 表示出现一次,10 表示多次,11 无意义)进行,共需内存 2^32 * 2 bit=1 GB 内存,还可以接受。然后扫描这 2.5 亿个整数,查看 Bitmap 中相对应位,如果是 00 变 01,01原创 2014-08-22 16:40:11 · 573 阅读 · 0 评论 -
hash相对B树优缺点
哈希表是种数据结构,它可以提供快速的插入操作和查找操作。第一次接触哈希表时,它的优点多得让人难以置信。不论哈希表中有多少数据,插入和删除(有时包括侧除)只需要接近常量的时间即0(1)的时间级。实际上,这只需要几条机器指令。对哈希表的使用者一一人来说,这是一瞬间的事。哈希表运算得非常快,在计算机程序中,如果需要在一秒种内查找上千条记录通常使用哈希表(例如拼写检查器)哈希表的速度明显比树快,树的操原创 2014-08-22 13:33:04 · 3435 阅读 · 0 评论 -
GBDT(MART) 迭代决策树入门教程 | 简介
在网上看到一篇对从代码层面理解gbdt比较好的文章,转载记录一下: GBDT(Gradient Boosting Decision Tree) 又叫 MART(Multiple Additive Regression Tree),是一种迭代的决策树算法,该算法由多棵决策树组成,所有树的结论累加起来做最终答案。它在被提出之初就和SVM一起被认为是泛化能力(g转载 2014-08-10 15:45:32 · 435 阅读 · 0 评论 -
C++中的static关键字
本文转自:http://blog.csdn.net/hackbuteer1/article/details/7487694C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。一、面向过程设计中的static1、静态全局变量在全局变量前,加上关键字static,该转载 2014-08-08 16:50:53 · 293 阅读 · 0 评论 -
Q13.5
题目原文:What is the significance of the keyword “volatile” in C?译文:谈谈C语言关键字"volatile"的意义(或重要性)?解答volatile的意思是"易变的",因为访问寄存器比访问内存要快得多, 所以编译器一般都会做减少存取内存的优化。volatile 这个关键字会提醒编译器转载 2014-07-24 17:02:09 · 477 阅读 · 0 评论 -
Q13.3 关于虚表指针、虚函数表、虚函数表中虚函数地址
第一个小白问题,why地址数组()原创 2014-07-24 14:48:40 · 548 阅读 · 0 评论 -
Q13.7
题目原文:Why does a destructor in base class need to be declared virtual?译文:为什么基类中的析构函数要声明为虚析构函数?解答用对象指针来调用一个函数,有以下两种情况:如果是虚函数,会调用派生类中的版本。如果是非虚函数,会调用指针所指类型的实现版本。析构函转载 2014-07-24 17:17:18 · 478 阅读 · 0 评论 -
Q13.6 C++名字隐藏
题目原文:What is name hiding in C++?译文C++中名字隐藏是什么?解答让我们通过一个例子来讲解C++中的名字隐藏。在C++中,如果一个类里有一个重载的方法, 你用另一个类去继承它并重写(覆盖)那个方法。你必须重写所有的重载方法, 否则未被重写的方法会因为名字相同而被隐藏,从而使它在派生类中不可见。转载 2014-07-24 17:08:23 · 438 阅读 · 0 评论 -
一个求幂的小trick
int mypow(int m, int n){ int res = 1; while(n) { if(n & 1) res *= m; m *= m; n >>= 1; } return res;}原创 2014-07-06 11:18:55 · 465 阅读 · 0 评论 -
Q13.4深拷贝和浅拷贝的区别
题目原文:What is the difference between deep copy and shallow copy? Explain how you would use each.译文:深拷贝和浅拷贝的区别是什么?你会如何使用它们?转载 2014-07-24 16:33:42 · 522 阅读 · 0 评论 -
内存结构
一个由c/c++编译的程序占用的内存分为以下几个部分:1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。 2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表,呵呵。 3、全局区(静态区)(static)—,全局变量和静态变量原创 2014-07-23 23:32:09 · 414 阅读 · 0 评论 -
函数指针
1.简单的函数指针的应用形式1:返回类型(*函数名)(参数表) [cpp] view plaincopychar (*pFun)(int); char glFun(int a){ return;} void main() { pFun = glFun; (*pFun)(2);转载 2014-07-24 13:56:03 · 297 阅读 · 0 评论 -
浮点数在计算机中存储方式
作者: jillzhang 联系方式:jillzhang@126.com 本文为原创,转载请保留出处以及作者, 谢谢 C语言和C#语言中,对于浮点类型的数据采用单精度类型(float)和双精度类型(double)来存储,float数据占用32bit,double数据占用64bit,我们在声明一个变量float f= 2.25f的时候,是如何分配内存的呢?如转载 2014-07-22 23:17:37 · 422 阅读 · 0 评论 -
cin的读取从右至左
while(N--){cin >>pt[i++].w >> pt[i].h;//学到一点,cin的读入也是从右至坐的,所以i++放最左边 }原创 2014-07-17 11:35:02 · 592 阅读 · 0 评论 -
x&(x-1)的巧用:用于判断x是否为2的n次幂,计算二进制1的个数
最近学到 x&(x-1) 这个式子的两个用法,跟大家分享一下。作用:将x的二进制表示从最低位起第一个为1的位清0;一、快速判定x是否为2^n幂。如果x!=0 且x&(x-1)==0,则x为2的n次幂。(当然不能判定n是多少)前提条件:x数据类型应为整数;#define ispow2(x) ( (x) 二、x=x&(x-1);相关应转载 2014-04-29 10:38:27 · 635 阅读 · 0 评论 -
找唯一奇数用异或,数组开在main内为栈,main外为堆
今天做一道HDU的水题,要求在1000000原创 2014-04-24 21:45:52 · 571 阅读 · 0 评论 -
软硬件接口小笔记-内存结构
在cache中,一个hit可以比一个miss快原创 2014-08-17 11:47:40 · 696 阅读 · 0 评论