C++
文章平均质量分 63
Peng___Peng
这个作者很懒,什么都没留下…
展开
-
vector 二维
用vector取代C-style的数组 提起数组,大家想必都很熟悉,你可以用索引和指针来操作数组,给程序设计带来了很大的灵活性。但是你知道它有许多天生的缺陷吗? 首先,数组的越界可能会引起程序的崩溃(如果崩溃了,还算你走运^_^)。其次是动态性不好,包括动态改变大小,动态申请。诸如此类的事,一定会让你伤透脑筋。有什么办法可以解决这些问题吗? 你不用担心,下面原创 2016-05-24 15:05:31 · 393 阅读 · 0 评论 -
C语言中的atan和atan2
在C语言的math.h或C++中的cmath中有两个求反正切的函数atan(double x)与atan2(double y,double x) 他们返回的值是弧度 要转化为角度再自己处理下。前者接受的是一个正切值(直线的斜率)得到夹角,但是由于正切的规律性本可以有两个角度的但它却只返回一个,因为atan的值域是从-90~90 也就是它只处理一四象限,所以一般不用它。第二个atan2(d转载 2016-05-22 21:33:16 · 1112 阅读 · 0 评论 -
Break and Continue
//break是结束整个循环体,continue是结束单次循环比方说:while(x++ < 10){ if(x == 3) { break; } printf("%d\r\n", x);}结果是输出 1 2 就退出了整个while循环但是如果使用continuewhile(x++ < 10){ if(x == 3原创 2016-05-22 21:36:43 · 288 阅读 · 0 评论 -
c++指针问题
以下四种说法中,正确的一项是( )。A.C++允许在字符串上进行整体操作B.语句:char vn []="Brown"; 将vn 定义成一个有5个元素的数组,因为"Brown" 中含有5个字符C.对指针只要赋给一个地址值就可以了D.一维的指针数组实际上是一个二维数组char vn[]="Brown" 有5个元素,但是会自动追加‘\0' 表示字符串的终结。其实有6个长度。指针是个变量 有原创 2016-05-23 21:41:17 · 666 阅读 · 0 评论 -
如何快速看懂一个大型程序
在软件研发过程中,我们经常碰到如下情况:许多学习开发的同学或在职的程序员都经常为拿到一个大型程序后,在短时间内无法快速读懂它而烦劳。当他们拿到一个大型程序后,他们便开始一句一句的阅读分析,夜以继日,就差悬梁刺股了,可结果依然不理想,往往进入以下状态:(1)花费了很长时间,也没有多大进展,与当时预计的日期相差甚远。(2)由于周期较长,他们往往在重复阅读分析最初的极小部分。就像有的童鞋读书一样转载 2016-06-30 19:51:01 · 7293 阅读 · 1 评论 -
Cmake的用法(以及编译程序的注意事项)
Cmake的用法(以及编译程序的注意事项)首先用cmake必须知道自己的VS版本是什么我用过cmake2.8.2的 最高只能编译到VS2010下版本的程序,同时用过cmake 3.5.2的 最高可以编译到VS2015下版本的程序而且编译的程序代码,必须有cmakefilelist.txt文件每一个文件夹下面都有必须把里面的版本和cmake版本调一致/给调正确用cmake会出原创 2016-06-30 21:08:32 · 759 阅读 · 0 评论 -
C++经典书目
C++经典书目索引: 严重申明 : 本博文未经原作者(jerryjiang)允许,任何人不得转载和抄袭 !Essential C++ 中文版层次:初级导读:《Essential C++中文版》以4个方面来表现C++的本质:procedural(程序性的)、generic(泛型的)、object-based(个别对象的)、object-oriented(面向对转载 2016-07-05 10:43:58 · 398 阅读 · 0 评论 -
Doxygen初学与简单应用
本文环境为Windows 7 x64一直在使用javadoc,奈何c\c++,python等其他语言注释写的很好,但没有工具自动生成文档。通过同事反应Doxygen可以针对各种语言生成文档内容。随即查阅了Doxygen的相关内容。Doxygen介绍:Doxygen 是一个 C++, C, Java, Objective-C、Python、IDL (CORBA 和 Microsoft转载 2016-06-20 10:20:13 · 428 阅读 · 0 评论 -
i++;++i;i--;--i 的区别
两次运行下面的程序,如果从键盘上分别输入6和3,则输出结果是( )。int x;scanf("%d",&x);if(x++>5) printf("%d",x);else printf("%d\n",x - -);A. 7和5 B. 6和3 C. 7和4 D. 6和4++i, 表示参与运算之前先自加1.i++,表示参与运算以后再加原创 2016-05-16 21:25:58 · 1007 阅读 · 0 评论 -
深入理解指针转换
当我们初始化一个指针或给一个指针赋值时,赋值号(=)的左边是一个指针,赋值号(=)的右边是一个指针表达式,在绝大多数情况下,指针的类型和指针表达式的类型是一样的,指针所指向的类型和指针表达式所指向的类型是一样的。例一:1、 float f=12.3;2、 float*fptr=&f;3、 int *p;在上面的例子中,假如我们想让指针p指向实数f,应该怎么搞?是用下面的语句吗?转载 2016-06-20 16:34:44 · 684 阅读 · 0 评论 -
回调函数
你到一个商店买东西,刚好你要的东西没有货,于是你在店员那里留下了你的电话,过了几天店里有货了,店员就打了你的电话,然后你接到电话后就到店里去取了货。在这个例子里,你的电话号码就叫回调函数,你把电话留给店员就叫登记回调函数,店里后来有货了叫做触发了回调关联的事件,店员给你打电话叫做调用回调函数,你到店里去取货叫做响应回调事件。回答完毕。转载 2016-08-29 13:23:53 · 484 阅读 · 1 评论 -
深入Main函数中的参数argc,argv的使用详解
深入Main函数中的参数argc,argv的使用详解作者: 字体:[增加 减小] 类型:转载 时间:2013-05-24 我要评论本篇文章是对Main函数中的参数argc,argv的使用进行了详细的分析介绍,需要的朋友参考下C/C++语言中的main函数,经常带有参数argc,argv,如下: 复制代码代码如下:int main(in转载 2016-08-30 17:24:57 · 554 阅读 · 0 评论 -
C++中负数是真还是假?
问:C++中负数是真还是假?答:所有非零值,无论正负,均为真!!!原创 2016-05-17 21:43:52 · 6584 阅读 · 1 评论 -
VS2013代码调试:[7]如何避免调试时加载符号
用VS2013打开代码文件,按下F5进行调试,可以看到系统会自动加载符号。可以看到此调试过程较为缓慢关闭调试,打开“工具”-“选项”-“调试”,在调试中找到符号选项在下图中取消勾选如下选项,确定并退出即可。此后再次按F5进行转载 2016-05-17 21:43:18 · 1113 阅读 · 0 评论 -
基于C语言sprintf函数的深入理解
printf 可能是许多程序员在开始学习C语言时接触到的 第二个函数(我猜第一个是main),说起来,自然是老朋友了,可是,你对这个老朋友了解多吗?你对它的那个孪生兄弟sprintf了解多吗?在将各种类 型的数据构造成字符串时,sprintf的强大功能很少会让你失望。由于sprintf跟printf在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出。这也导转载 2016-05-26 21:24:41 · 2300 阅读 · 0 评论 -
C++静态成员变量和静态成员函数
数据成员可以分静态变量、非静态变量两种. 静态成员:静态类中的成员加入static修饰符,即是静态成员.可以直接使用类名+静态成员名访问此静态成员,因为静态成员存在于内存,非静态成员需要实例化才会分配内存,所以静态成员不能访问非静态的成员..因为静态成员存在于内存,所以非静态成员可以直接访问类中静态的成员. 非成静态员:所有没有加Static的成员都是非静态成员,当类被实例化之后,可以转载 2016-05-16 21:20:48 · 266 阅读 · 0 评论 -
C++调试
代码功能归根结底不是别人帮自己看或讲解或注释出来的;而是被自己静下心来花足够长的时间和精力亲自动手单步或设断点或对执行到某步获得的中间结果显示或写到日志文件中一步一步分析出来的。提醒:再牛×的老师也无法代替学生自己领悟和上厕所!单步调试和设断点调试(VS IDE中编译连接通过以后,按F10或F11键单步执行,按Shift+F11退出当前函数;在某行按F9设断点后按F5执行停在该断点处。)是原创 2016-05-16 21:22:10 · 294 阅读 · 0 评论 -
浅析栈区和堆区内存分配的区别
一直以来总是对这个问题的认识比较朦胧,我相信很多朋友也是这样的,总是听到内存一会在栈上分配,一会又在堆上分配,那么它们之间到底是怎么的区别呢?为了说明这个问题,我们先来看一下内存内部的组织情况.从上图可知,程序占用的内存被分了以下几部分.1、栈区(stack)由编译器自动分配释放 ,存放函数的参数值,局部变量的值等,内存的分配是连续的,类似于平时我们所说的栈,如转载 2016-05-16 21:23:13 · 264 阅读 · 0 评论 -
namespace的用法理解
C++中采用的是单一的全局变量命名空间。在这单一的空间中,如果有两个变量或函数的名字完全相同,就会出现冲突。当然,你也可以使用不同的名字,但有时我们并不知道另一个变量也使用完全相同的名字;有时为了程序的方便,必需使用同一名字。比如你定义了一个变量string user_name, 有可能在你调用的某个库文件或另外的程序代码中也定义了相同名字的变量,这就会出现冲突。命名空间就是为解决C++中的变量、转载 2016-05-16 21:24:10 · 2162 阅读 · 0 评论 -
#include”* .h“ 在查找预编译头使用时跳过
出现以下情况的解决办法1>------ 已启动生成: 项目: OpenGL, 配置: Debug Win32 ------1> render_opengl.cpp1>h:\tddownload\3d绘图程序设计\projects\chap06\blending_solar_system\render_opengl.cpp(2): warning C4627: “原创 2016-05-17 21:34:57 · 2713 阅读 · 0 评论 -
C语言中memset函数详解
功 能: 将s所指向的某一块内存中的每个字节的内容全部设置为ch指定的ASCII值, 块的大小由第三个参数指定,这个函数通常为新申请的内存做初始化工作 用 法: void *memset(void *s, char ch, unsigned n); 程序例: #include #include #include int m转载 2016-05-17 21:36:13 · 328 阅读 · 0 评论 -
Main函数中的argc和argv应用举例
尽管之前写过一篇关于argc,argv方面的文章(http://blog.csdn.net/carson2005/article/details/5766192)但依然有朋友搞不太清楚。所以,这里,我举两个简单的例子来详细说明,并告诉你一步一步的操作步骤。例1:打开指定路径下的一个文本文件,读取其内容,并将其写入到指定路径下的另一个文件当中。其中,采用argv来传递输入文件路径和输出文件路转载 2016-05-17 21:36:55 · 391 阅读 · 0 评论 -
C++的头文件和实现文件分别写什么
++编程过程中,随着项目的越来越大,代码也会越来越多,并且难以管理和分析。于是,在C++中就要分出了头(.h)文件和实现(.cpp)文件,并且也有了Package的概念。对于以C起步,C#作为“母语”的我刚开始跟着导师学习C++对这方面还是感到很模糊。虽然我可以以C的知识面对C++的语法规范,用C#的思想领悟C++中类的使用。但是C#中定义和实现是都在一个文件中(其实都是在类里面),而使用转载 2016-05-17 21:40:09 · 272 阅读 · 0 评论 -
内联函数
内联扩展是用来消除函数调用时的时间开销。它通常用于频繁执行的函数。 一个小内存空间的函数非常受益。如果没有内联函数,编译器可以决定哪些函数内联 。 程序员很少或没有控制哪些只能是内联的,哪些不是。 给这种控制程度,作用是程序员可以选择内联的特定应用 。转载 2016-05-17 21:40:46 · 245 阅读 · 0 评论 -
作用域运算符的有什么功能
作用域:变量在程序中的起作用范围; 简单分为:全局作用域、局部作用域、语句作用域; 作用域优先级: 范围越小优先级越高; 作用域运算符:“::” 如果希望在局部变量的作用域内使用同名的全局变量,可以在该变量前加上“::” ,“::”称为作用域运算符。原创 2016-05-17 21:41:22 · 3454 阅读 · 0 评论 -
c++中vector的用法详解
vector(向量): C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,当程序员无法知道自己需要的数组的规模多大时,用其来解决问题可以达到最大节约空间的目的. 用法: 1.文件包含: 首先在程序开头处加上#include以包含所需要的类文件vector 还有一定要加上using name转载 2016-05-17 21:41:55 · 355 阅读 · 0 评论 -
使用Vector实现二维数组
用vector取代C-style的数组 提起数组,大家想必都很熟悉,你可以用索引和指针来操作数组,给程序设计带来了很大的灵活性。但是你知道它有许多天生的缺陷吗? 首先,数组的越界可能会引起程序的崩溃(如果崩溃了,还算你走运^_^)。其次是动态性不好,包括动态改变大小,动态申请。诸如此类的事,一定会让你伤透脑筋。有什么办法可以解决这些问题吗?转载 2016-05-17 21:42:40 · 1305 阅读 · 0 评论 -
讨论关于cmake, 第三方库,VS2010版本和PCL库单独update直接的关系
为什么VS2010需要特定的第三方库,而不是用最新的第三方库,如果我要是用vs2015 vs2013的话,岂不是需要更高版本的第三方库。为什么PCL库,单独update的话,需要用到cmake进行编译而PCL1.6.0不需要编译。cmake为什么可以能够把不同版本写下的程序可以编译过来让自己版本的平台使用,cmake充当的作用是什么?低版本vs2010写的程序可以够高版本vs编译使用,原创 2016-09-02 14:47:57 · 630 阅读 · 0 评论