C++
文章平均质量分 69
Ididcan
这个作者很懒,什么都没留下…
展开
-
c++ 图形函数
一、屏幕操作函数 1. clrscr()清除字符窗口函数 2. window()字符窗口函数 3. gotoxy()光标定位函数 4. clreol() 清除光标行尾字符函数 5. insline() 插入空行函数 6. delline() 删除一行函数 7. gettext() 拷进文字函数 8.转载 2009-08-04 11:26:00 · 12589 阅读 · 4 评论 -
zoj 2100 Seeding
SeedingTime Limit: 2 Seconds Memory Limit: 65536 KBIt is spring time and farmers have to plant seeds in the field. Tom has a nice field, which is a rectangle with n * m squares. There are原创 2012-08-27 17:00:44 · 791 阅读 · 0 评论 -
经典面试题21——包含min函数的栈
定义栈的数据结构,请在该类型中实现一个能够得到栈的最小元素的min函数,在该栈的调用中,调用min、push、以及pop、的时间复杂度都是O(n)。代码如下:#include #include #include #include using namespace std;templateclass MinStack{private: stack s;原创 2012-08-31 12:43:19 · 867 阅读 · 0 评论 -
经典面试题(七)
利用两个栈来实现队列的操作。代码如下所示#include #include using namespace std;templateclass QueueFromStack{private: stack s1; stack s2;public: // use reference instead of variable pass原创 2012-08-29 15:08:14 · 788 阅读 · 0 评论 -
经典面试题(十二)——顺序输出从1到N位数
第一种使用大数加法。。。第二种使用对数字的全排列,时间是O(10^N),而空间是O(N)。要注意一点的是数字的首位不能为0,同时输出字符数组最后一位应该以'\0'为结尾。代码如下所示:#include using namespace std;void printNum(char num[], int start, int end){ if(start==end)原创 2012-08-30 11:24:05 · 1232 阅读 · 0 评论 -
经典面试题(六)重构二叉树
给定先序遍历与后序遍历的二叉树,重构该二叉树。例如先序遍历的结果{1,2,4,7,3,5,6,8},中序遍历的结果{4,7,2,1,5,3,8,6},最后得到一个二叉树root-1 left-2 left-4 right-7 right-3原创 2012-08-29 11:56:14 · 3171 阅读 · 1 评论 -
生成排列数(回溯法)
#include using namespace std;#define n 7int s[n] = { 1,2,3,4,5,6,7};int r[6];int v[n];void print(){ for(int i = 0; i<6;i++) cout<<s[r[i]]<<" "; cout<<endl;}void com原创 2009-10-02 20:31:00 · 1174 阅读 · 2 评论 -
Eclipse+CDT 头文件无法解析的问题( Ubuntu 11.10,Eclipse 3.7)
本篇文章来源于 Linux公社网站(www.linuxidc.com) 原文链接:http://www.linuxidc.com/Linux/2011-10/46042.htm Eclipse CDT功能很强大,安装完虽然可以编译运行c++程序,但有个问题,就是找不到c++标准库的头文件,无法打开诸如之类的文件,编译器警告如下:显示 Unresolved inclusio转载 2011-11-09 19:25:59 · 9253 阅读 · 3 评论 -
利用JNI实现JAVA插件开发
本文主要工作在于利用JNI实现对已经完成的视频镜头提取C++程序的调用。整个过程如下所示:1)将视频特征提取算法建立相应的windows下的Dll和Linux下的So(这个两个文件大家都知是什么了吧)2)利用jni调用这些dll。但是有一个问题,就是这里的所有库文件需原创 2011-09-29 09:56:16 · 2527 阅读 · 0 评论 -
Prim算法
cost数组表示的是图的加权值。其中顶点到自身的权值为0,到与自身相接的顶点为它们之间的权值,不直接相连的为INT_MAX。而tree数组准确描述应该是最小生成树的边集,因为一个N个顶点的图中,其最小生成树的边集中的元素只能为N-1。否则如果如果边集大于N-1,那么一定存在回路,如果小于N-1那么一定有一个点不在该树种。near集合中存储的是还未进入最小生成树中的点集。Prim算法的过程如下:原创 2012-08-28 09:53:32 · 659 阅读 · 0 评论 -
Bellman-Ford算法:计算单源最短路径
#include #include #include using namespace std;struct FordEdge{ int u; int v; int w;};int const N = 5;vector es;int dis[N];int parents[N];int costs[N][N] = {{0 ,6 ,7原创 2012-08-28 22:48:48 · 860 阅读 · 0 评论 -
经典面试题——求任意两个叶节点中最近的父节点
以下程序未经测试,仅供参考!#include #include using namespace std;struct LCATreeNode{ LCATreeNode* m_pLeft; LCATreeNode* m_pRight; int m_value;}bool nodePath(LCATreeNode* root, int原创 2012-09-19 21:44:21 · 2960 阅读 · 0 评论 -
经典面试题——二维矩阵子矩阵和问题
两种方法:有空再详细说明#include #include using namespace std;int sumOfArray_1(int** array, int m, int n){ int **a = new int*[m+1]; int **sum = new int*[m+1]; for(int i = 0 ; i <= m; ++i){ s原创 2012-09-19 16:30:04 · 1162 阅读 · 0 评论 -
编程之美——3.10 分层遍历二叉树
学过数据结构我们很容易知道如何进行宽度优先遍历树,那么这道题就是对宽度优先遍历树的算法进行改进。 1 / \ 2 3 / \ \ 4 5 6 / \ 7 8运用BFS只能输出1,2,3,4,5,6,7,8这个序列,并不知道分层信息,因此如何分层打印呢?原创 2012-09-16 21:56:59 · 1171 阅读 · 0 评论 -
编程之美——2.19 区间重合判断
将区间按照x来排序(递增),然后依次判断目标区间的起始位置是否在这些区间上,例如判断区间 [a,b] 是否在区间 [c,d] , [e,f]之中,我们可以分析c d,e f的关系,按照之前所述的方法排好序之后[c,d] , [e,f]要么相交,要么相离。如果相交,那么e=d。由此可以看到只要判断a是否在 [c, d]之间就好,如果在就将a增加到d,然后循环判断,知道所有区间都被遍历一遍,如果所有区原创 2012-09-16 21:16:25 · 3059 阅读 · 1 评论 -
经典面试题——求字符串中最长的数字串
在字符串中找出连续最常的字符串,并把这个串的长度返回。并把这个最长数字串赋给一个函数参数outputstr所指向的内存。例如"abcd12345ed123sf3343461346345" 的首地址赋给inputstr后函数返回9,outputstr所指向的值为“3343461346345”;#include using namespace std;int maxContinueN原创 2012-09-13 14:59:53 · 1710 阅读 · 0 评论 -
经典面试题——首次出现的单字符
在一个字符串中找到第一个出现,并且只出现一次的字符,例如abaccdeff,输出b这是谷歌在2006年的一道笔试题。#include #include #include using namespace std;unsigned char findFirstChar(char *str, int n){ int range = sizeof(char)<<8; i原创 2012-09-13 11:07:40 · 947 阅读 · 1 评论 -
经典面试题——子数列和
输入两个整数n和m,从数列1,2,3...,n中随意取几个数使其和等于m,要求将其中所有可能都列出来。#include using namespace std;void sumOfSubArray(int m, int n){ if(m<0 || n<1) return; int sum = 1; for(int i = 1, j = 1; j < n;){原创 2012-09-13 14:51:19 · 1039 阅读 · 0 评论 -
java和C++区别
Java和C++子类转换成父类,方法调用的不同之处及原因这个是java和c++一个很重要的区别,在c++中,可以通过这样向上提升的类型操作实现对父类行为的调用,而在Java中,无论对其进行什么样的类型转换,其类型实际上是不变的。举个简单的例子,C++中class A {public: void print(){ cout<<"Class A"<<endl;原创 2012-09-12 10:09:04 · 832 阅读 · 0 评论 -
JNI出现无法找到依赖库的问题汇总(1)——Can't find dependent libraries
由于项目的需要,需要将之前写好的视频切分算法做成一个java插件。因此需要用到jni对其进行调用。总是出现Can't find dependent libraries的问题。由于之前没有接触过JNI,所以想从简到难进行一下测试。于是写了一个HelloWorld程序用于原创 2011-09-28 10:46:27 · 9528 阅读 · 1 评论 -
JNI简单实现Java调用C++/C的HelloWorld
简介JVM封装了各种操作系统实际的差异性的同时,提供了JNI技术,它是一种双向的接口,使得开发者可以通过Java代码调用到各种native的 库,反之亦然。所以JNI(Java Native Interface)能作为Java语言的一部分,她能够作为粘合剂将Java应用和其他原创 2011-09-28 12:36:28 · 10310 阅读 · 1 评论 -
C++ STL 学习笔记
(一) STL:(A)#include #include using namespace std;1) void sort( iterator start, iterator end );void sort( iterator start, iterator end, StrictWeakOrdering cmp );cmp函数的参数类型只能和sort中排序的类型相同。原创 2009-10-05 23:40:00 · 1003 阅读 · 0 评论 -
C++的64位整数
在做ACM题时,经常都会遇到一些比较大的整数。而常用的内置整数类型常常显得太小了:其中long 和 int 范围是[-2^31,2^31),即-2147483648~2147483647。而unsigned范围是[0,2^32),即0~4294967295。也就是说,常规的32位整数只能够处理40亿以下的数。 那遇到比40亿要大的数怎么办呢?这时就要用到C++的64位扩展转载 2009-09-05 14:30:00 · 1178 阅读 · 0 评论 -
如何设置cout的输出格式(转)
如何设置cout的输出格式(转)编程笔记设置cout的输出格式有两种办法,一种是用cout的成员变量,一种是用里面提供的函数比如要设置输出的行宽,就有两种方法:#include#includeusing namepsace std;void main(){ // using str::width() cout.width(20); co转载 2009-08-31 09:41:00 · 6629 阅读 · 0 评论 -
定时器使用方法
定时器使用方法定时器在VC中的使用频繁,以下讨论定义器的使用方法。 定时器的原型是: WINUSERAPI UINT WINAPI SetTimer ( HWND hWnd , UINT nIDEvent, UINT uElapse, TIMERPROC lpTimerFunc); hWnd 是欲设置定时器的窗体句柄。定时时间到时,系统会向该窗体发送WM_TIMER转载 2009-08-29 22:35:00 · 1445 阅读 · 0 评论 -
fatal error 1083 VC++
http://support.microsoft.com/kb/316343/zh-cn 这是VC中的一个bug,以上的链接是微软对其的说明。 拜拜Google大神之后收到以下结果。=================================================================================在编译vc时出现了这样的错误原创 2009-08-24 20:18:00 · 1601 阅读 · 0 评论 -
String C++ 使用规则
0 前言: string 的角色 1 string 使用 1.1 充分使用string 操作符 1.2 眼花缭乱的string find 函数 1.3 string insert, replace, erase 2 string 和 C风格字符串 3 string 和 Charactor Traits 4 string 建议 5 小结 6 附录 7 参考文章 0 前言: string转载 2009-08-23 14:34:00 · 1645 阅读 · 0 评论 -
cin、cin.get()、cin.getline()、getline()、gets()等函数的用法
学C++的时候,这几个输入函数弄的有点迷糊;这里做个小结,为了自己复习,也希望对后来者能有所帮助,如果有差错的地方还请各位多多指教(本文所有程序均通过VC 6.0运行)转载请保留作者信息;1、cin1、cin.get()2、cin.getline()3、getline()4、gets()5、getchar()1、cin>> 用法1:最基本,也是最常用的用法,输入一个数转载 2009-08-07 22:18:00 · 593 阅读 · 0 评论 -
floodfile
Pseudocode for Breadth-First ScanningThis code uses a trick to not use extra space, marking nodes to be visited as in component -2 and actually assigning them to the current component when they转载 2009-08-04 11:33:00 · 989 阅读 · 0 评论 -
C 100 道经典题目
【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。 2.程序源代码:main(){int i,j,k;printf("/n");for(i=1;i<5;i++) /*以下为三重循环*/ fo转载 2009-10-14 22:04:00 · 951 阅读 · 0 评论 -
理解虚基类、虚函数与纯虚函数的概念
引言 一直以来都没有写过一篇关于概念性的文章,因为我觉得这些概念性的东西书本上都有并且说的也很详细写来也无用,今天突发奇想想写一写,下面就和大家讨论一下虚基类、虚函数与纯虚函数,一看名字就让人很容易觉得混乱。不过不要紧待看完本文后你就会理解了。正文 虚基类 在说明其作用前先看一段代码class A<img id="Codehighlighter1_8_32_Op原创 2009-10-18 23:49:00 · 640 阅读 · 0 评论 -
double类型数据 位移操作
由于位操作的对象是整型变量,所以你必须利用某种转换让编译器把浮点变量暂时当成整型变量。不过,直接强制转换是不行的: float f = 12.34; int i = (int)f; // i最后等于12而不是你想要的结果! 所以,转换必须是“间接”的: float f = 12.34; int *p = (转载 2011-06-12 20:24:00 · 5000 阅读 · 0 评论 -
stdafx.h的作用
当使用visual C++时,总是包含了头文件stdafx.h,却不知道是干什么用的.呵呵,今天查找了相关资料,解释如下:当我们使用AppWizard来自动生成某些项目的时候,系统会自动把所需要include的头文件在stdafx.h中先include一下,这样,我们只需要直接include这个stdafx.h文件即可.因为同一个项目中的不同源文件CPP都包含相同的include文件,这样,为每个.CPP文件都重复include这些文件就显得很傻了。具体在stdafx.h中需要include什么头文件,取决转载 2010-11-18 14:30:00 · 910 阅读 · 0 评论 -
C++二进制文件的读取
<br />今天在做项目时联想到了这两个问题,所以实际编程测试了一下,有一些新的收获:<br /> <1> 我一直以为自己很熟悉如何使用C/C++中的二进制文件,可今天测试的时候突然发现程序生成的二进制文件和文本文件一样。比如:<br /> FILE* fp = fopen("binary","wb");<br /> //FILE* fp = fopen("character.txt","w");<br /> fprintf(fp,"count is %d",250);<br /> 上述代码一个使转载 2010-11-19 22:02:00 · 16262 阅读 · 2 评论 -
C++语法点——extern “C”作用
<br />因为C、C++的编译器对函数名的修饰不同,为了保证在C、C++中编写的函数能够被互相调用,所以采用这个链接指示符<br /><br />以int func(int, int)为例,C的编译器会将名字改编为_func, 而C++的编译器会改编为_func_int_int 或_funcii(各编译器不同)。<br /><br />如果这个函数在C中编译成库,目标文件中函数名为_func,当这个函数中C++中被调用时,C++的编译器就会到目标文件中<br />寻找_funcii,结果找不到,出错。<b原创 2010-11-19 20:12:00 · 1247 阅读 · 0 评论 -
c++语法点
重要的经验1)在设计函数时,参数若为类类型,则一般都用引用类型,如果为内部数据结构则不适用引用。2)在写if语句的时候注意应该把常量放在变量之前,防止一下错误 if(a=1){...}编译器不会报错,而如果写成if(1=a){...}编译器则会报错。这是因为a=1此时if条件判断a为非零,此时成功通过编译。而1=a则为非法赋值,编译报错。此外,如果a=0,if条件检测a为零原创 2009-10-30 10:15:00 · 2020 阅读 · 0 评论 -
arrangement of number
/* Definition: 1)the direction of the number,every number possesses a direction which means the direction the number tend to move. 2)active: when the number_now is active,it means原创 2009-10-29 11:07:00 · 817 阅读 · 0 评论 -
C++细节
=====================================================================================1)#ifdef __cplusplusextern "C" {#endif /*...*/ #ifdef __cplusplus}#endif 为了支持原来的C代码和已经写好C库,需要在C++中尽可能的支持C,为了在C++代原创 2009-10-24 20:32:00 · 514 阅读 · 0 评论 -
C/C++ 笔记(零碎点)
1)a = a + 5; 与 a += 5;的区别。 二者在广义上是等价。D.Ritchie 在C语言中引入复合运算符的主要目的是为了提高编译的效率以产生高质量的执行代码。因为这些运算符的功能基本上都能用一二条机器指令来完成。 2)在C++中long 与 int 的区别 NameDescriptionSize*Range*charCh原创 2009-10-20 22:50:00 · 640 阅读 · 0 评论 -
经典面试题——n皇后问题
一个典型的回溯法!作为练习。有几个关键地方需要注意,就是判断皇后的位置是否合法。pos[i] 表示第i个皇后应该排在的位置。因此对于第k个皇后而言,需要满足 pos[i]!=pos[k] 同时 abs(i-k)!=abs(pos[i]-pos[k])#include using namespace std;bool canPlace(int pos[], int k)原创 2012-09-21 16:55:30 · 1880 阅读 · 0 评论