随笔分类 -  c++

摘要:模块一:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->1 for(int i= 0;i<N; i++)2 {3 A;4 B;5 C;6 }7模块二:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--> 1 for(int i= 0;i<N; i++) 2 { 3 A; 4 }5 f 阅读全文
posted @ 2012-10-23 12:56 hktkhhhh 阅读(516) 评论(1) 推荐(0) 编辑
摘要:首先,复杂度为n^2的基本方式,将第一个对比节点的父节点全部入栈,而后将堆栈中的父节点序列跟第二个对比节点进行逐一比较,如果相等说明是最近的共同祖先:myLCA(node1, node2){ parentNode :=[] while(node1!=NULL){ parentNode.push(node1) node1 := node1.parent } while(node2!=NULL){ for i in parentNode.size { if(parentNode(i)== node2){ return node2; } ... 阅读全文
posted @ 2012-10-03 15:52 hktkhhhh 阅读(2183) 评论(6) 推荐(0) 编辑
摘要:1. 遍历的时候不只用value check, 还会用到address check2. C++ 生成随机数主要函数:1. 在双向链表插入新节点2. 计算双向链表中元素的总个数2. 删除某个值的所有元素3. 删除某个值的单个元素4. 统计等于某个值的元素个数此外有一个Output函数用来输出测试结果头结点是head, 如为NULL则该双向链表为空感悟:觉得在处理特殊单个节点的情况比较麻烦,要额外考虑出来此外,用地址检测来确认遍历一圈,而不是用值data来检测代码(包括测试的main函数):[cpp]view plaincopy#include<iostream>#include< 阅读全文
posted @ 2012-09-22 20:11 hktkhhhh 阅读(1618) 评论(0) 推荐(0) 编辑
摘要:1、什么是const? 常类型是指使用类型修饰符const说明的类型,常类型的变量或对象的值是不能被更新的。(当然,我们可以偷梁换柱进行更新:) 2、为什么引入const? const 推出的初始目的,正是为了取代预编译指令,消除它的缺点,同时继承它的优点。 3、cons有什么主要的作用? (1)可以定义const常量,具有不可变性。 例如: const int Max=100; int Array[Max]; (2)便于进行类型检查,使编译器对处理内容有更多了解,消除了一些隐患。例如: void f(const int i) { .........} 编译器就会知道i是一个常量,不允许修改; 阅读全文
posted @ 2012-09-19 16:51 hktkhhhh 阅读(12221) 评论(1) 推荐(0) 编辑
摘要:字符串是程序员求职笔试中必考题型,很能考查出编程的基础。下文选取了几个常见的考题和大家进行分享。 1、编写函数,实现把一个char组成的字符串循环右移n位。如abcdehi,n=2。则输出hiabcde。#include "iostream" using namespace std; const int MAX_LEN = 20; void LoopMove(char* cpStr, int iSteps) { //注意,在整个处理过程中,cpStr的最后字符都没有涉及处理 char cTempArray[MAX_LEN]; size_t szStrLength = str 阅读全文
posted @ 2012-09-16 17:16 hktkhhhh 阅读(7089) 评论(1) 推荐(0) 编辑
摘要:编译的概念:编译程序读取源程序(字符流),对之进行词法和语法的分析,将高级语言指令转换为功能等效的汇编代码,再由汇编程序转换为机器语言,并且按照操作系统对可执行文件格式的要求链接生成可执行程序。 编译的完整过程:C源程序-->预编译处理(.c)-->编译、优化程序(.s、.asm)-->汇编程序(.obj、.o、.a、.ko)-->链接程序(.exe、.elf、.axf等)1. 编译预处理 读取c源程序,对其中的伪指令(以#开头的指令)和特殊符号进行处理伪指令主要包括以下四个方面:(1)宏定义指令,如#define Name TokenString,#undef等。对于 阅读全文
posted @ 2012-09-11 17:09 hktkhhhh 阅读(4661) 评论(3) 推荐(3) 编辑
摘要:转 http://blog.csdn.net/zhongjiekangping/article/details/5854719私有继承的第一个规则:和公有继承相反,如果两个类之间的继承关系为私有,编译器一般不会将派生类对象转换成基类对象。第二个规则: 从私有基类继承而来的成员都成为了派生类的私有成员,即使它们在基类中是保护或公有成员。私有继承的含义:私有继承意味着 "用...来实现"。如果使类D私有继承于类B,这样做是因为你想利用类B中已经存在的某些代码,而不是因为类型B的对象和类型D的对象之间有什么概念上的关系。因而,私有继承纯粹是一种实现技术。私有继承意味着只是继承实现 阅读全文
posted @ 2012-09-08 16:25 hktkhhhh 阅读(1691) 评论(1) 推荐(1) 编辑
摘要:这篇文章涉及到的都是一些C语言的基础知识,是从一篇英文文章中部分翻译和加入我自己的认识!!!!1. gets()函数Q:下面的代码中隐含着安全问题,能发现吗? 1 #include<stdio.h> 2 int main(void) 3 { 4 char buff[10]; 5 memset(buff,0,sizeof(buff)); 6 7 gets(buff); 8 9 printf("\n The buffer entered is [%s]\n",buff);10 11 return 0;12 }A:问题在于gets()函数,这个函数是接收标准输入的一串 阅读全文
posted @ 2012-09-07 00:28 hktkhhhh 阅读(174) 评论(0) 推荐(0) 编辑
摘要:dynamic_cast<type-id> (expression)这个表达式将 expression 转换为一个 type-id 类型的对象。 Type-id 必须是一个指针、指向一个已经定义类的类型或一个指向 VOID 的指针。 Expression 的类型必须是一个指针,如果 type-id 是一个指针;当 type-id 是一个引用的时候必须是一个左值。如果 type-id 是一个到 expression 类的直接或间接的模棱两可的指针,结果是一个到 type-id 类型的子对象:class B { ... };class C : public B { ... };clas 阅读全文
posted @ 2012-07-19 23:47 hktkhhhh 阅读(331) 评论(0) 推荐(0) 编辑
摘要:一、简介由于C++语言没有自动内存回收机制,程序员每次new出来的内存都要手动delete。程序员忘记delete,流程太复杂,最终导致没有delete,异常导致程序过早退出,没有执行delete的情况并不罕见。用智能指针便可以有效缓解这类问题,本文主要讲解参见的智能指针的用法。包括:std::auto_ptr、boost::scoped_ptr、boost::shared_ptr、boost::scoped_array、boost::shared_array、boost::weak_ptr、boost::intrusive_ptr。你可能会想,如此多的智能指针就为了解决new、delete匹 阅读全文
posted @ 2012-07-15 16:35 hktkhhhh 阅读(1947) 评论(0) 推荐(0) 编辑
摘要:一、莫名的恐惧感 对于指针确实有种莫名的恐惧感,从刚开始学习的时候就被老师灌输的概念是指针功能很强大,但是用得不够好,会有很大的副作用。什么叫用得够好?初学者谁都不会用,那且不是都不能用了?如果都这样,指针都没人用了,还要指针做什么? 陷入了上述困局的原因在于我们的这种莫名的恐惧感,指针如此之神秘,以至于如我一样大多数的人都望而生畏,无所适从,被迫放弃。二、野指针诚如当初老师的忠告一样, 指针是个很强大的工具,可是正因为它太强大,所以要操作它不是件易事。操作不当造成的野指针,甚至会引起系统死机等比较严重的后果。 如果程序定义了一个指针,就必须要立即让它指向一个我们设定的空间或者把它设为NULL 阅读全文
posted @ 2012-07-13 15:22 hktkhhhh 阅读(251) 评论(0) 推荐(1) 编辑
摘要:Cpp代码 //Exampleofthesizeofkeyword size_ti=sizeof(int); structalign_depends{ charc; inti; }; size_tsize=sizeof(align_depends);//Thevalueofsizedependson //thevaluesetwith/Zpor //#pragmapack intarray[]={1,2,3,4,5};//sizeof(array)is20 //sizeof(array[0])is4 size_tsizearr=//Countofitemsinarray sizeof(arra 阅读全文
posted @ 2012-07-10 18:24 hktkhhhh 阅读(1978) 评论(0) 推荐(0) 编辑
摘要:一. 回顾指针概念: 今天我们又要学习一个叫做指向另一指针地址的指针。让我们先回顾一下指针的概念吧! 当我们程序如下申明变量: short int i; char a; short int * pi; 程序会在内存某地址空间上为各变量开辟空间,如下图所示。 内存地址→6 78 9 10 111213 1415 ------------------------------------------------------------------------------------- …| ||||| ||||--------------------------------------------- 阅读全文
posted @ 2012-06-06 21:30 hktkhhhh 阅读(419) 评论(0) 推荐(0) 编辑
摘要:今天是六一儿童节,回想起当年还在这天表演了不少的节目.............................................................. 阅读全文
posted @ 2012-06-01 15:59 hktkhhhh 阅读(241) 评论(0) 推荐(1) 编辑
摘要:1、什么是static? static 是C++中很常用的修饰符,它被用来控制变量的存储方式和可见性。2、为什么要引入static? 函数内部定义的变量,在程序执行到它的定义处时,编译器为它在栈上分配空间,大家知道,函数在栈上分配的空间在此函数执行结束时会释放掉,这样就产生了一个问题: 如果想将函数中此变量的值保存至下一次调用时,如何实现? 最容易想到的方法是定义一个全局的变量,但定义为一个全局变量有许多缺点,最明显的缺点是破坏了此变量的访问范围(使得在此函数中定义的变量,不仅仅受此函数控制)。3、什么时候用static? 需要一个数据对象为整个类而非某个对象服务,同时又力求不破坏类的封装性, 阅读全文
posted @ 2012-05-30 21:10 hktkhhhh 阅读(319) 评论(0) 推荐(1) 编辑