C&&C++
文章平均质量分 53
Jcy
用忍者的心态学习
用武士的态度战斗
展开
-
C++ 修饰符 restrict
restrict是一个限定符,这个关键字据说来源于古老的FORTRAN,主要用来修饰指针指向的内存不能被别的指针引用。比如说,const int size = 100;int arr[size];int * restrict pre = (int *)malloc(sizeof(arr)*size);int * p = arr;pre是唯一能够操作arr原创 2012-04-24 20:40:01 · 2146 阅读 · 0 评论 -
简单介绍vs2010解决方案边框栏的结构
今天来简单介绍下vs2010旗舰版中解决方案边框栏的结构,并且拿一个实际的MFC的例子来展示下。1. Solution Explorer显示项目中包含的文件。这些文件分布在Header Files,Resource Files,Source Files三个虚拟文件夹中,当然还有一个ReadMe.txt。为何称之为虚拟文件夹呢,是因为他们在我们的磁盘空间是不存在的,只是为了方便程序猿们查看的原创 2012-11-16 19:33:46 · 2932 阅读 · 0 评论 -
c++设计模式之状态模式
转载自:http://blog.csdn.net/gotosola/article/details/7578164,转载这篇文章,个人感觉是原作者写的通俗易懂,适合刚学设计模式的人。/************************************************************************//* 状态模式转载 2012-12-02 10:56:59 · 805 阅读 · 0 评论 -
字符串查找之字符次数
这篇文章想要说的是在一个字符串中查找第一次出现在字符串中并且指出现过一次的字符。我的做法就是先遍历整个字符数组,统计好每个字符出现的次数,然后再次遍历,提取出第一次出现的值为1次的那个字符即可。#include #include char find_first(char* str1){ if (NULL == str1) // string is null原创 2012-12-02 15:34:42 · 923 阅读 · 0 评论 -
字符串匹配之首尾匹配算法
上一篇谈的是朴素算法(有的也称为BF算法),也就是最简单,最笨拙的方法,不过也是最容易写出的算法了,下面介绍的是一种在特定情况下稍好于朴素算法的方法,称之为首尾匹配算法。大致思路如下:主串:ghdwdgdwhduedfh子串:dwh主串索引:i;子串索引:j;从主串的第一个字符开始,用子串的首字符跟主串当前位置比较,如果一样,则比较子串最后一位对应的主串位置的字符,如果不一原创 2012-11-19 16:42:00 · 4794 阅读 · 1 评论 -
字符串匹配之朴素算法
此算法原型是按照严蔚敏书第79页上的求子串位置的定位函数来写的,其实百度能看到很多关于字符串朴素算法的例子,其中不乏用c和c++语言实现的。不过大多数都是不带参数的,即要不是将串定义为全局的,要不就是在子函数中定义。而严蔚敏的书中是作为参数,并且带起始搜索位置的参数。下面是代码:#include #include #include int Index(char *str_1,c原创 2012-11-18 17:59:49 · 2215 阅读 · 0 评论 -
队列基本操作
下面是按严蔚敏书第65页上要求写的数据结构里的队列的一些基本操作,在codeblocks10.5中测试正确,C语言实现:#include #include #define MAXQSIZE 100#define OK 1#define ERROR 0typedef int Status;typedef int QElemType;typedef struct { QE原创 2012-11-02 17:04:36 · 531 阅读 · 0 评论 -
二叉树建立与遍历
本算法主要是利用扩展先序遍历法创建二叉树,再用先序遍历遍历二叉树,最后按照树形输出整个二叉树:关于本文中的扩展先序遍历法,可参照:http://baike.baidu.com/view/5050145.htm#include #include #include typedef int DataType;typedef struct Node { DataTy原创 2012-11-20 19:09:56 · 993 阅读 · 0 评论 -
基本排序之冒泡排序
简单的利用了一个标志量:#include #include int main(void){ int arr[] = {65,42,13,65,73,75,2,34}; int flag = 0; int temp =0; int n = sizeof(arr)/sizeof(int); // printf("%d\n",n); for (i原创 2012-12-04 18:01:12 · 639 阅读 · 0 评论 -
最大公约数与最小公倍数算法
#include #include #define MAX(a,b) (a > b ? a : b)template T gcd(T a, T b){ return a > b ? (b == 0 ? b : a%b) : gcd(b,a%b);}int main(void){ int a,b; int resLcm = 0; int resG原创 2012-12-04 19:08:15 · 809 阅读 · 0 评论 -
栈基本操作(C++实现)
#include using namespace std;class ListStack; //提前声明,友元函数需要class ListNode{ friend class ListStack;public: ListNode(int value):data(value), next(0) {}private: int data; ListNode *next;};原创 2012-12-23 20:22:22 · 2684 阅读 · 0 评论 -
C语言之注意基本类型的范围
#include #include int main(){ char arr[1000]; int i; for (i=0; i<1000; i++) { arr[i] = -1-i; } printf("%d\n",strlen(arr)); return 0;}大家一眼看到这个,会说出什么答案呢?肯原创 2012-12-13 12:33:44 · 982 阅读 · 0 评论 -
大数运算(C++类实现)
#include#includeusing namespace std;const int maxn = 200;struct bign{ int len, s[maxn]; bign() { memset(s, 0, sizeof(s)); len = 1; } bign(int num) { *this = num; } bign原创 2012-12-14 19:25:00 · 2906 阅读 · 0 评论 -
统计文章中相同单词的个数
利用STL中的multimap实现:#include #include #include #include #include using namespace std;template void print_map (const T& m){ T::const_iterator p = m.begin(); for (; p!=m.end(); ++p) { c原创 2012-12-20 20:20:00 · 1760 阅读 · 0 评论 -
初识OpenGL
之前介绍过OpenGL在VS2010上的安装,相信这个不难,不过需要记得每次在建立OpenGL工程的时候需要加载相关的lib库文件,如opengl32.lib;glu32.lib;glut32.lib这次看看OpenGL在画二维图形的时候的基本构成。#include #include #include #include #pragma comment(lib, "gl原创 2012-11-29 10:36:18 · 2352 阅读 · 2 评论 -
C语言Math函数库简介
C语言的Math库下面有很有实用的库函数,下面简单的介绍下。1. abs( ) --添加头文件2. acos( ) --反余弦函数 --参数范围(-1, 1),返回值是弧度值,范围为(0,Pi)3. asin( ) --反正弦函数 --参数范围(-1, 1),返回值是弧度值,范围为(-Pi/2,Pi/2)4. atan( ) --反正切函数 --5. ceil原创 2012-11-28 12:27:24 · 19332 阅读 · 0 评论 -
C 文件操作
#include #include #include #include #define LEN 40int main(int argc, char *argv[]){ FILE * in,*out; int ch; char name[LEN]; int count = 0; if(argc < 2) { fprintf(stderr,"Useage: %s file原创 2012-04-25 15:19:59 · 777 阅读 · 0 评论 -
函数指针略解一二
函数指针这两天一直在重新翻看C++的书,发现对很多东西有了新的认识,或者说是懂了很多知识。 先来说说函数指针吧,函数指针,顾名思义就是指向函数的指针,而不是指向函数对象的指针。 1.形式就像,int (*pf)(const int &,const int &);这就是将pf声明为返回值类型是int的,参数是const int&,const int&类型的。需要注意的就原创 2012-04-30 20:17:40 · 547 阅读 · 0 评论 -
C 文件操作 exit&&return
1. 关于退出函数exit()函数关闭所有打开的文件并中止程序。exit()的参数会被传递给操作系统。通常正常结束是0,非正常结束是非0,不同的退出值标识导致程序失败的不同原因。除了使用0退出,还可以使用EXIT_SUCCESS来指示程序成功结束;除了使用非0值表示异常退出外,还可以使用EXIT_FAILURE。这是两个宏,定义在头文件中。2. return和exit区别原创 2012-04-26 14:35:35 · 476 阅读 · 0 评论 -
如何判断有符号数的溢出
在C语言中,由于无符号数不存在溢出一说,所以溢出都是对有符号数来说的。如果你想利用 if( a + b 判断是否溢出的方法之一就是都转化为无符号数,然后判断其与C语言中最大值的大小。一种方法如下:if ( (unsigned)a + (unsigned)b > INT_MAX ) //报错其中,INT_MAX是C语言中自带的一个常量,在头文件中。原创 2012-10-31 19:55:20 · 5347 阅读 · 0 评论 -
Opencv在VC6.0中的配置
Opencv相关的程序的源代码在网上一搜有很多,但是能够适用的配置环境的说明很少,在这里给大家提供一个肯定可以成功配置的网页:http://http://www.opencv.org.cn/index.php/VC6下安装与配置OpenCV1.0跟着说明一步一步的走,肯定会成功的。这里顺便附上一个实验你是否成功的代码:#include "highgui.h"原创 2012-10-31 19:46:05 · 1303 阅读 · 0 评论 -
汉诺塔(递归实现)
这是按照严蔚敏书55页上写的。#include #include int c = 0; //表示移动的次数void move(char x, int n, char z){ printf("Move disk %d from %c to %c\n", n, x, z);}void hanoi(int n,char x, char y, char z){a原创 2012-10-31 21:24:11 · 724 阅读 · 0 评论 -
栈模拟迷宫
#include #include #define STACK_SIZE 1#define STACK_ADD 1#define FLASE 0#define TRUE 1#define N 10#define M 10typedef int Elemtype;typedef int Status;int curstep = 1; //探索的步数int map[M][原创 2012-11-01 19:04:57 · 761 阅读 · 0 评论 -
vs2010自动添加行号以及屏幕闪过解决办法
vs2010的默认安装中是不提供行号显示功能的,需要自己设置,设置方法就是:Tools->Options->Text Editor->C/C++在右边会看到Display选项,选择Line numbers,确定后就会看到行号了。另外,初次使用vs2010的人会发现为什么在vc6.0下写的程序搬到vs2010上,屏幕就会一闪而过呢,这个时候只要在main函数的return 0原创 2012-11-05 22:14:43 · 1231 阅读 · 0 评论 -
初窥函数指针
我们通常知道的都是用指针存储一个变量的地址,这个变量具有跟指针类型相同的数据类型。除了这个功能,指针还可以指向一个函数的地址,进而来调用被指向的函数。(1) 函数指针的声明: int (*pfun)(double, int);这样就声明了一个指向参数类型是double和int的返回值类型是int的函数指针了。函数指针通常由三部分组成:1. 指向函数的返回类型2. 指原创 2012-11-08 10:22:41 · 1086 阅读 · 0 评论 -
vs2010重装msdn错误解决办法
很多人都会有这样的经历,安装了vs2010,也安装了msdn,不过可能会由于某方面的原因将vs2010卸载了重装,这个时候你将会发现点击vs2010->Help->manager的那个管理工具的时候弹出来的对话框从disk安装一栏暗下来了,也就是没法选择,很郁闷,此时你可以这样:进入到你的安装目录下的help文件夹,我的是这里:C:\Program Files\Microsoft He原创 2012-11-04 22:04:11 · 823 阅读 · 0 评论 -
安装MingW
MinGW是指只用自由软件来生成纯粹的Win32可执行文件的编译环境。简单的说,MingW就是GCC的Windows版本。下载地址:http://sourceforge.net/projects/mingw/files/安装:(1)一步步的Next,在需要选择工具的那块,选择你需要的工具,有C,C++,OBJC等等。(2)之后会出现Windows黑色界面原创 2012-11-27 13:13:22 · 989 阅读 · 0 评论 -
VS2010搭建OpenGL环境
OpenGL的配置相对简单,具体如下:(1)下载OpenGL库:http://download.csdn.net/detail/jcy8126/4817894(2)解压文件包,配置:a. 将glut.h 放入 C:\Program Files \Microsoft SDKs\Windows\v7.0A\Include\gl --(可能每个人安装路径不一样)原创 2012-11-27 18:55:05 · 1028 阅读 · 0 评论 -
qsort用法
在我们平时排序的时候,莫不过是sort,stable_sort……这些STL里面的排序模版了,在C中也有一个很厉害的排序算法:qsort,今天简单说说他的一个用法。#include #include #include using namespace std;inline int intcmp(const void* a,const void* b){ int aa原创 2012-10-31 19:56:55 · 1259 阅读 · 0 评论 -
Qt4连接mysql成功
之前一直在做嵌入式方面的开发,用的都是sqlite数据库,由于项目要求,这次改为mysql数据库,不过qt是不自带mysql数据库驱动的,需要自己手动编译。我上网查找编译方法,可是别人的qt要么是linux环境下的,要么版本不一样。不过还是在网上找到了一个别人已经编译好了的驱动,现跟大家分享下。QT版本:说明:其实4.8也可以用,在别人那尝试成功。编译完成的原创 2013-03-23 12:33:17 · 3490 阅读 · 0 评论