C/C++
文章平均质量分 71
梦想天空1
这个作者很懒,什么都没留下…
展开
-
C++递归用法
转自:http://bbs.ikaka.com/showtopic-664019.aspx简单谈谈C++ 递归的思想实现以及和循环的关系很多初学者往往对递归迷惑不解,也在这上面花了不少的时间。其实教材上的例子很经典,只是它说的有一些唠叨了。初学者会看的头大的。编程是解决问题的,而现实中很多的问题都是比较简单的,没有象汉诺塔那么复杂。我们也不必追究递归到底是怎样实现的,我们只是要会用转载 2014-08-23 23:01:23 · 596 阅读 · 0 评论 -
前置++和后置++的区别
转自:http://blog.csdn.net/randyjiawenjie/article/details/6747720今天在阅读《google c++ 编程风格》的文档的时候,5.10. 前置自增和自减:有一句话引起了我的注意:对于迭代器和其他模板对象使用前缀形式 (++i) 的自增, 自减运算符.,理由是 前置自增 (++i) 通常要比后置自增 (i++) 效率更高。于是我转载 2014-08-23 23:21:41 · 1330 阅读 · 0 评论 -
关于printf函数输出先后顺序的讲解
对于printf函数printf("%d%d\n",a,b);函数的实际输出顺序是这样的先计算出b,然后在计算a,接着输出a,最后在输出b;例子如下:#includeusing namespace std;int main(){ int i=3,j=5; printf("%d %d\n",(i++)-(--j),j=(i+=2)); printf("%d %转载 2014-08-23 23:19:29 · 2659 阅读 · 0 评论 -
C++空类默认函数
定义一个空的C++类,例如class Empty{}一个空的class在C++编译器处理过后就不再为空,编译器会自动地为我们声明一些member function,一般编译过去就相当于class Empty{public:Empty(); // 缺省构造函数Empty( const Empty& ); // 拷贝构造函数~Empty(); //转载 2014-08-23 22:55:33 · 454 阅读 · 0 评论 -
双向链表的节点删除
void ddeletenode(dlistnode*p) { p–>prior–>next=p–>next; p–>next–>prior=p–>prior; free(p); } 注意:与单链表的插入和删除操作不同的是,在双链表中插入和删除必须同时修改两个方向上的指针。上述两个算是法的时间复杂度均为O(1)。原创 2014-09-07 12:49:54 · 1208 阅读 · 0 评论 -
C语言随机函数rand()的用法
转自:rand和srand的用法 首先我们要对rand&srand有个总体的看法:srand初始化随机种子,rand产生随机数,下面将详细说明。 rand(产生随机数) 表头文件: #include 定义函数 :int rand(void) 函数说明 : 因为rand的内部实现是用线性同余法做的,他不是真的随机数,只不过是因为其周期特别长,所以有一定的范围里可看成是随机转载 2014-08-23 23:13:42 · 1928 阅读 · 0 评论 -
C语言指针的初始化和赋值
1、指针的初始化指针初始化时,“=”的右操作数必须为内存中数据的地址,不可以是变量,也不可以直接用整型地址值(但是int*p=0;除外,该语句表示指针为空)。此时,*p只是表示定义的是个指针变量,并没有间接取值的意思。例如:int a = 25;int *ptr = &a;int b[10];int *point = b; int *转载 2014-08-11 11:02:18 · 816 阅读 · 0 评论 -
各种指针的定义
转自:各种1,一个整形数: int a;2,一个指向整形数的指针: int *a;3,一个指向指针的指针,它指向的指针指向一个整形数: int **a;4,一个有10个整形数的数组: int a[10];5,一个有10个指针的数组,每个指针指向一个整形数: int *a[10];6,一个指向有10个整形数的数组的指针: int (*a)转载 2014-08-11 10:58:08 · 416 阅读 · 0 评论 -
scanf()函数用法小结
虽然有人说在大型程序设计中永远不要使用scanf(),但是对于习惯用C的人和参加ACM/ICPC的人,scanf()还是用的比较多的,而且用好了用起来也很方便 下面整理一点儿平时常需要用到而可能有些人一直理不清的一些知识 一般常识:scanf()函数的一般格式为:scanf("格式字符串",输入项首地址表)scanf的格式控制的一般形式为转载 2014-08-14 16:21:40 · 525 阅读 · 0 评论 -
字节序问题--大端法小端法
一、字节序定义字节序,顾名思义字节的顺序,再多说两句就是大于一个字节类型的数据在内存中的存放顺序(一个字节的数据当然就无需谈顺序的问题了)。其实大部分人在实际的开发中都很少会直接和字节序打交道。唯有在跨平台以及网络程序中字节序才是一个应该被考虑的问题。在所有的介绍字节序的文章中都会提到字节序分为两类:Big-Endian和Little-Endian。引用标准的Big-End转载 2014-10-23 10:54:10 · 1650 阅读 · 0 评论 -
指针数组和数组指针的区别
指针数组:array of pointers,即用于存储指针的数组,也就是数组元素都是指针数组指针:a pointer to an array,即指向数组的指针还要注意的是他们用法的区别,下面举例说明。int* a[4] 指针数组 表示:数组a中的元素都为int型指针转载 2014-10-23 10:50:56 · 512 阅读 · 0 评论 -
C引用详解
c++比起c来除了多了类类型外还多出一种类型:引用。这个东西变量不象变量,指针不象指针,我以前对它不太懂,看程序时碰到引用都稀里糊涂蒙过去。最近把引用好好地揣摩了一番,小有收获,特公之于社区,让初学者们共享。 引用指的是对一个对象的引用。那么什么是对象?在c++中狭义的对象指的是用类,结构,联合等复杂数据类型来声明的变量,如 MyClass myclass,CDialog mydlg,等转载 2014-10-06 16:53:42 · 1203 阅读 · 0 评论 -
C++中整数和字符/字符串的转换
转自:http://lukas06.blog.sohu.com/85459852.html1、整数与字符的转换(1)整数转换为字符:整数加'0'就会隐性的转换为char类型的数。(2)字符转换为整数:相反的,字符减去'0'就会转换为整数。2、整数和字符串的转换(1)整数转换为字符串使用itoa函数例如:int num=12345; char s转载 2014-09-16 21:54:47 · 908 阅读 · 0 评论 -
小根堆基本操作
转自:http://blog.csdn.net/hmsiwtv/article/details/8130398小根堆如果有一个关键字的集合K={k0,k1,k2, ..., kn-1}, 把所有元素按完全二叉树的顺序存储方式存放在一个一维数组中,并且满足ki 则称这个集合为小根堆。小根堆的创建:1. 复制堆数组2. 找到最初的调整位置,即最后转载 2014-09-16 21:44:43 · 1308 阅读 · 0 评论 -
野指针
定义“野指针”不是NULL指针,是指向被释放的或者访问受限的垃圾内存的指针。人们一般不会错用NULL指针,因为用if语句很容易判断。但是“野指针”是很危险的,if无法判断一个指针是正常指针还是“野指针”。有个良好的编程习惯是避免“野指针”的唯一方法。成因野指针的成因主要有三种:一、指针变量没有被初始化。任何指针变量刚被创建时不会自动成为NULL指针,它的缺省值是随机转载 2014-09-16 20:32:28 · 419 阅读 · 0 评论 -
内联函数和宏定义的区别
用内联取代宏:1.内联函数在运行时可调试,而宏定义不可以;2.编译器会对内联函数的参数类型做安全检查或自动类型转换(同普通函数),而宏定义则不会; 3.内联函数可以访问类的成员变量,宏定义则不能; 4.在类中声明同时定义的成员函数,自动转化为内联函数。文章(一)内联函数与宏定义 在C中,常用预处理语句#define来代替一个函数定义。例如: #d转载 2014-08-04 20:04:03 · 417 阅读 · 0 评论 -
一个指针变量占几个字节
首先 假设p指向char类型变量 (占1个字节)假设q指向int类型变量 (占4个字节)假设r指向double类型变量 (占8个字节)那么p、q、r它们本身所占的字节数是否一样?这里还得学习一个小知识sizeof(数据类型)此运算符功能:返回值就是该数据类型所占的字节数。sizeof(变量名)此运算符功能:返回值就是该变量所占的字节数。# inc转载 2014-07-30 11:20:55 · 26781 阅读 · 2 评论 -
const类型的成员函数内部如何改变成员变量
转自http://blog.csdn.net/qychjj/article/details/5914448通过指针也能实现。 在C++中,由const修饰的成员函数的函数体内部,是不能够对成员变量进行修改的。这个特性被用来保证某些成员函数在实现过程中,避免由于程序员大意而对数据进行了错误的修改;同时也说明此成员函数是非修改性的。如只需要返回成员变量的成员函数就被声明为const转载 2014-07-30 10:37:19 · 629 阅读 · 0 评论 -
图像-不变矩原理与opencv程序
以下转自http://blog.csdn.net/dadaadao/article/details/6114989图像-不变矩不变矩的主要思想是使用对变换不敏感的基于区域的几个矩作为形状特征,Hu提出了7个这样的矩,在他工作的基础上出现了很多改进的版本。 图像的几何不变矩 矩特征主要表征了图像区域转载 2013-11-14 21:31:04 · 3304 阅读 · 0 评论 -
opencv2.3.1与VS2008/VS2010安装配置图解
转自http://blog.chinaunix.net/uid-26404201-id-3365000.htmlOpencv2.3.1在VS2008和VS2010平台上安装配置图解1、下载软件。Opencv2.3.1可从此处下载到:http://www.opencv.org.cn/index.php/DownloadVS Express是微软提供的免费版,可从此处下载: http://转载 2013-11-14 10:19:41 · 1022 阅读 · 0 评论 -
利用opencv 中hough变换检测圆并画出圆心和半径
#include#include#includeusing namespace std;int main(){IplImage* src = NULL;IplImage* dst = NULL;IplImage* color = NULL;src = cvLoadImage ("d:\\image12.bmp", 1);dst = cvCreateI原创 2013-11-13 13:28:28 · 9103 阅读 · 7 评论 -
error C2065: “endl”: 未声明的标识符
VS2008运行出现如下错误: error C2065: “cout”: 未声明的标识符 error C2065: “endl”: 未声明的标识符等一类问题。 原因:没有写上using namespace std;添加上using namespace std;即可。原创 2013-11-12 19:05:43 · 5315 阅读 · 0 评论 -
【OpenCV】数字图像灰度直方图
灰度直方图是数字图像中最简单且有用的工具,这一篇主要总结OpenCV中直方图CvHistogram的结构和应用。灰度直方图的定义灰度直方图是灰度级的函数,描述图像中该灰度级的像素个数(或该灰度级像素出现的频率):其横坐标是灰度级,纵坐标表示图像中该灰度级出现的个数(频率)。一维直方图的结构表示为高维直方图可以理解为图像在每个维度上灰度级分布的直方图。转载 2013-11-20 21:17:35 · 748 阅读 · 0 评论 -
系统配置中服务项那些可以禁用
是服务选项 的那些回答:1)alerter 错误警报2)automatic updates windows 自动更新3)background intelligent transfer service 使用空闲的网络带宽传数据4)clipbook 共享剪贴板内容,关5)Computer browser 维护网络更新列表6)DHCP client 关 7)Distr转载 2013-11-20 15:33:36 · 6332 阅读 · 0 评论 -
VC++错误unresolved external symbol _WinMain@16
C++错误unresolved external symbol _WinMain@16今天用VC6.0写的一个简单程序中出现以下错误:Linking... LIBCD.lib(wincrt0.obj) : error LNK2001: unresolved external symbol _WinMain@16 Debug/test.exe : fatal error LNK112原创 2013-11-19 19:10:23 · 1028 阅读 · 0 评论 -
HU不变矩OPENCV计算方法
HU不变矩OPENCV计算方法 #include "cv.h"#include "highgui.h" #include using namespace std;IplImage* oriImg;IplImage* grayImg;int Img2Gray(void){ if((oriImg = cvLoadImage(转载 2013-11-14 21:33:09 · 1918 阅读 · 0 评论 -
自适应阈值化 AdaptiveThreshold
转自:http://blog.csdn.net/superdont/article/details/6661994自适应阈值化的函数为:AdaptiveThreshold自适应阈值方法void cvAdaptiveThreshold( const CvArr* src, CvArr* dst, double max_value,转载 2013-11-14 15:18:53 · 8408 阅读 · 0 评论 -
C++中mutable关键字
mutalbe的中文意思是“可变的,易变的”,跟constant(既C++中的const)是反义词。 在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量,将永远处于可变的状态,即使在一个const函数中。 我们知道,如果类的成员函数不会改变对象的状态,那么这个成员函数一般会声明成const的。但是,有些时候,我们需要在const的函数里面修改转载 2014-07-30 14:21:54 · 490 阅读 · 0 评论 -
如何实现在类中定义真正的const成员变量
类中的const成员变量有时我们希望某些常量只在类中有效。由于#define定义的宏常量是全局的,不能达到目的,于是想当然地觉得应该用const修饰数据成员来实现。const数据成员的确是存在的,但其含义却不是我们所期望的。const数据成员只在某个对象生存期内是常量,而对于整个类而言却是可变的,因为类可以创建多个对象,不同的对象其const数据成员的值可以不同。转载 2014-07-30 10:20:22 · 445 阅读 · 0 评论 -
参数传递时数组引用保护数组退化为指针
如下定义就得到一个数组的引用 类型名 (&变量名)[N];在进行参数的传递时,数组引用可以帮助我们防止数组退化为指针,而这是我们在编程中很难注意到的问题。下面来看一个实例:#include void each(int int_ref[10]){ std::cout for(int i=0;i转载 2014-08-04 10:34:38 · 617 阅读 · 0 评论 -
C++运算符优先级
优先级原创 2014-07-27 16:53:24 · 396 阅读 · 0 评论 -
C/C++中printf、cout输出顺序
printf()输出表达式的运算顺序是由右向左的,不同的编译系统不一定相同,可以从左到右, 也可从右到左。Turbo C,VC++6.0都是按从右到左进行的。 写出程序的输出结果:#include void main(){ int i=8,j=10,m=0,n=0; printf("%d,%d,%d,%d\n",i,j,m=++i,n=j++转载 2014-07-27 11:11:56 · 1419 阅读 · 0 评论 -
类型转换——int转换成char(截短)
类型转换——int转换成char(截短) int a,b; //keil c里的int,也就是16位。a=0000; b=0x1234;a=(char)(b); int a,b;这句的功能是操作系统为变量a,b分别分配一块空闲的存储空间。以后使用a,b将相当于访问各自所对应的存储空间。 a = 0000;b转载 2014-07-27 15:17:38 · 2777 阅读 · 0 评论 -
单线程与多线程
多线程概述 删除切换添加基本信息栏 正文(不超过20000字,如有疑问请查看使用帮助)添加新参考资料参考资料:如何使用参考资料删除编辑插入到正文王建新 隋美丽.Labwindows/CVI虚转载 2014-06-08 20:20:32 · 1476 阅读 · 0 评论 -
一元线性回归模型与最小二乘法及其C++实现
转自http://blog.csdn.net/qll125596718/article/details/8248249 一元线性回归模型与最小二乘法及其C++实现分类: 数据挖掘与机器学习2012-12-02 14:13 2637人阅读 评论(1) 收藏 举报目录(?)[+] 监督学习中,如果预测的变量是转载 2014-02-20 10:09:48 · 885 阅读 · 0 评论