
C&C++
夏天7788
知行合一
展开
-
关于C++中的常量成员函数
常量成员函数声明:如:int get() const;规则:1.常量成员函数不修改对象。2.常量成员函数在定义和声明中都应加const限定3.非常量成员函数不能被常量成员函数调用,但构造函数和析构函数除外。4.常量(const对象)对象只能调用常量成员函数。(const对象的数据成员在对象寿命周期内不能改变,因此其只能调用常量成员函数)。意义:1.使成员函数的意义更加清原创 2016-04-26 09:43:07 · 7333 阅读 · 0 评论 -
转:C++中获得文件大小
C++中获得文件大小 #include using namespace std;int main(int argc, char* argv[]){ ifstream in("file.txt"); in.seekg(0, ios::end); //设置文件指针到文件流的尾部 streampos ps转载 2016-06-21 16:05:22 · 291 阅读 · 0 评论 -
c++学习main函数输入参数argc argv,vs2008输入参数设置,cmd常用命令
1.main 函数输入参数argc argv main函数的完全格式是这样的: int main(int argc, char* argv[], char* envp[]) 下面详细介绍: argc是执行程序时的命令行参数个数。需要注意的是,程序本身的文件也算一个。比如你写了个程序叫ex,若用下面的命令行启动: ex /p /w 则arg转载 2016-06-21 16:06:46 · 470 阅读 · 0 评论 -
VS2012 监视窗口(watch)看不见添加的向量
解决:工具 --> 選項 --> 字型和色彩 在 "顯示設定" 选择【Watch,Locals,...】,在选择Use Default。原创 2016-01-25 16:02:11 · 1704 阅读 · 0 评论 -
关于工程配置
1. 所有设置VS2012:C/C++:ALL Options 所有路径设置选项Linker:ALL Options 所有路径设置选项VC6:C/C++:Project Options 所有路径设置选项Linker:Project Options 所有路径设置选项2. 几项新学的配置(1).def文件路径设置(2)通过工程配置定义宏,C/C++ -> Pre原创 2016-01-25 16:03:01 · 392 阅读 · 0 评论 -
vs利用Call Stack调试程序
1.双击CallStack中的每一层,可以再每一层上查看变量信息原创 2016-01-25 16:04:42 · 2356 阅读 · 0 评论 -
使用pageheap调试程序,监控内存
from:http://blog.sina.com.cn/s/blog_9d549eab0100zucl.html(1)将pageheap.exe放到要监控的.exe所在目录下,如E:\project\VehicleDetection\Project\TLOnlineDetection\x64\Debug(2)以系统管理员身份执行cmd(3)在cmd中定位到.exe所在目录转载 2016-01-25 16:10:09 · 524 阅读 · 0 评论 -
vs各类文件的作用
.sln 相当于VC6中 .dsw.vcxproy 相当于VC6中 .dsp.vcxproj.filters 用于项目下文件的虚拟目录 *.user: 是用户的一些相关配置可以删除的:suo(solutionuser options)相当于VC6中 .ncb文件记录所有将与解决方案建立关联的选项,以便在每次打开时,它都包含用户所做的自定义设置。比如原创 2016-01-25 16:11:19 · 956 阅读 · 0 评论 -
vs2012窗口布局恢复
如图...在刚才忘记删除一个DC之后系统蓝屏了...重启之后VS的界面风格变成这样了: 而原来设置的风格应该是下面这样的(把橙色视为蓝色吧- -..这图难找):而且之前重置窗口布局是会变成第二种布局的.现在重置无限次都只会是第一种布局了...解决方案: 在Tools-> import and export setting 里面调!..原创 2016-01-25 16:11:58 · 939 阅读 · 0 评论 -
转:VS2012中将当前选定项目做为启动项
from:http://www.cnblogs.com/vcoo/archive/2012/08/03/2621117.htmlVisual Studio 2010一个解决方案中多个项目,如果想选择哪个项目就设置哪个项目为启动项可以这么做。一、对于以后新建的解决方案想这样通过VS设置工具:二、对于已经存在的解决方案可以这样:转载 2016-01-25 16:12:53 · 534 阅读 · 0 评论 -
报错 sal.h(2367): error
error:1>C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\include\sal.h(2367): error C2143: syntax error : missing ';' before 'string'1>C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC\原创 2016-01-25 16:18:16 · 2910 阅读 · 2 评论 -
在visual studio工程设置中增加宏定义的方法
1. 应用:dll生成工程中导出头文件中有如下定义:#ifdef VIDEO_QUALITY_DIAGNOSIS_EXPORTING#define VQD_INTERFACE _declspec(dllexport)#else#define VQD_INTERFACE _declspec(dllimport)#endif2.方法:在Solutio原创 2016-01-26 18:17:19 · 5840 阅读 · 1 评论 -
debug版程序运行正常,release版程序运行出错
1. 检查是否有变量没有初始化,尤其是重要的控制变量。 debug会对程序中没有初始化的局部变量进行初始化(全局变量在两种版本中都会被初始化),而release不会,因此release版中没有初始化的变量的值运行时是不确定的。而debug版中没有初始化的整型会被初始化为0,指针也会被初始化为0,也就是空指针。这样就可以避免很多错误,或者使得错误的出现有规律,便于查错。2. 定位rele原创 2016-01-26 14:21:51 · 1645 阅读 · 0 评论 -
编译基于cent64,android,suse32平台程序
一、cent641. 安装编译环境。安装虚拟机VMware Player,安装linux CentOS2. 映射windows文件成为windows与虚拟操作系统共享文件。Virtual Machine->Virtual Machine Seting->Options->Shared Folders->add3. 右击,Terminal,打开输入命令窗口。4. 常用命令:a)ls原创 2016-01-26 14:21:16 · 571 阅读 · 0 评论 -
VS2012+win7x64+OpenCV2.4.2安装
1.OpenCV最新版本2.4.2是适用于VS2010,但VS2012也可以使用那些lib,无需重新编译。2.VS2012配置OpenCV过程与VS2010+OpenCV是一样的,不再赘述。也可以参考VS2008+OpenCV,参见:http://www.opencv.org.cn/index.php/VC_2008_Express下安装OpenCV2.3.13.安装配置完,编译连接通过,原创 2016-01-26 14:19:53 · 407 阅读 · 0 评论 -
c++学习笔记,void*及全局变量
1. void* 可以指向任何类型的数据。在应用中,体现内存操作的意义。因此在lib发布的头文件中多使用void*类型,在实现文件中强制类型转换到自己定义的类型,实现封装的隐蔽性。2. 引用其他文件中定义的全局变量。在定义全局变量的头文件中声明全局变量,并添加关键字extern,在相应.c文件中定义该全局变量,即赋值。之后在其他包含该头文件的文件中就可以使用该全局变量了。 3. 关原创 2016-01-27 14:50:10 · 1315 阅读 · 0 评论 -
[转]数据类型字节长度表
from:http://www.cnblogs.com/ziffer/archive/2009/10/18/1585574.html 类型标识符类型说明长度 (字节)范围备注char字符型1-128 ~ 127-27 ~ (27 -1)unsigned char转载 2016-06-21 16:04:07 · 743 阅读 · 0 评论 -
printf,sprintf
屏幕格式输出控制, 字符串格式输出控制。printf("%*.*d \n", -5, -5, 20);printf("%*.*d \n", 5, 5, 20);printf("%*.*d \n", -5, 5, 20);printf("%*.*d \n", 5, -5, 20);打印:20 0002000020 20原创 2016-06-21 16:02:06 · 398 阅读 · 0 评论 -
类的默认的构造函数
如果一个类中没有定义任何的构造函数,那么编译器只有在以下三种情况,才会提供默认的构造函数:1、如果类有虚拟成员函数或者虚拟继承父类(即有虚拟基类)时;2、如果类的基类有构造函数(可以是用户定义的构造函数,或编译器提供的默认构造函数);3、在类中的所有非静态的对象数据成员,它们对应的类中有构造函数(可以是用户定义的构造函数,或编译器提供的默认构造函数)。原创 2016-04-26 09:43:48 · 654 阅读 · 0 评论 -
关于优化C++的小知识
1.构造函数初始化列表的使用,一些指针,内置类型的初始化可以在构造参数列表中初始化,速度较快。2.单独使用++,--等运算符,前置要优于后置,如++i要好于i++3.delete指针前,或其他释放空间函数如cvReleaseImage(IplImage*)要先判断该指针是否存在,如:if(image) cvReleaseImage(&image);4.对于图像等多维数组的遍历,要注原创 2016-04-26 09:45:04 · 261 阅读 · 0 评论 -
C++中 public protected private 类成员的访问
第一:private, public, protected 访问标号的访问范围。private:只能由1.该类中的函数、2.其友元函数访问。不能被任何其他访问,该类的对象也不能访问。protected:可以被1.该类中的函数、2.子类的函数、以及3.其友元函数访问。但不能被该类的对象访问。public:可以被1.该类中的函数、2.子类的函数、3.其友元函数访问,转载 2016-04-26 09:47:35 · 935 阅读 · 0 评论 -
C++中产生随机数
计算机的随机数都是由伪随机数,即是由小M多项式序列生成的,其中产生每个小序列都有一个初始值,即随机种子。(注意: 小M多项式序列的周期是65535,即每次利用一个随机种子生成的随机数的周期是65535,当你取得65535个随机数后它们又重复出现了。) 我们知道rand()函数可以用来产生随机数,但是这不是真正意义上的随机数,是一个伪随机数,是根据一个数(我们可以称它为种子)为基准转载 2016-04-26 09:48:56 · 258 阅读 · 0 评论 -
c/c++ 数字转成字符串, 字符串转成数字
数字转字符串:用C++的streanstream:#include #Include string num2str(double i){ stringstream ss; ss return ss.str(); }字符串转数字:int str2num(string s) {转载 2016-04-26 09:49:48 · 332 阅读 · 0 评论 -
关于文件读写
文件读写流中涉及的文件名最好用英文,否则会出现读写失败。原创 2016-04-26 09:50:34 · 236 阅读 · 0 评论 -
关于c++常量定义
在C++中,要定义一个常量,有两种主要的做法 1. 符号常量 (#define) 2. 常值变量 (const) 符号常量的定义方式,其实与C++本身没有关系,它是一个编译器指令,或者称为预处理指令(有关的预处理指令还有#include,#ifdefine等等)。 与符号常量相对的,常值变量需要通过const关键字定义。相对来说,const更加现代,它是c++的一个关键原创 2016-04-26 09:51:33 · 666 阅读 · 0 评论 -
模板函数,模板类的声明和定义都放在.h文件
模板函数的声明和定义都放在.h文件2008年06月17日 星期二 18:05一个模板函数,把声明和定义分别放在.h文件和.cpp文件种,如果不调用这个函数的话,编译连接都能通过,但是如果调用这个函数的话,连接就有错误如下: --------------------Configuration: IRSEG - Win32 Release-------------转载 2016-04-26 09:53:16 · 745 阅读 · 0 评论 -
如何优化C语言代码(程序员必读)
如何优化C语言代码(程序员必读) 1、选择合适的算法和数据结构 应该熟悉算法语言,知道各种算法的优缺点,具体资料请参见相应的参考资料,有 很多计算机书籍上都有介绍。将比较慢的顺序查找法用较快的二分查找或乱序查找 法代替,插入排序或冒泡排序法用快速排序、合并排序或根排序代替,都可以大大 提高程序执行的效率。.选择一种合适的数据结构也很重要,比如你在一堆随机存转载 2016-04-26 10:01:51 · 821 阅读 · 0 评论 -
C代码优化方案(一)
2008-11-10 作者:王全明 来源:csdn1、选择合适的算法和数据结构选择一种合适的数据结构很重要,如果在一堆随机存放的数中使用了大量的插入和删除指令,那使用链表要快得多。数组与指针语句具有十分密切的关系,一般来说,指针比较灵活简洁,而数组则比较直观,容易理解。对于大部分的编译器,使用指针比使用数组生成的代码更短,执行效率更高。在许多种情况下,可以用指针运算代替数组索引,这样做转载 2016-04-26 10:04:47 · 339 阅读 · 0 评论 -
C代码优化方案(二)
6、提高CPU的并行性(1)使用并行代码尽可能把长的有依赖的代码链分解成几个可以在流水线执行单元中并行执行的没有依赖的代码链。很多高级语言,包括C++,并不对产生的浮点表达式重新排序,因为那是一个相当复杂的过程。需要注意的是,重排序的代码和原来的代码在代码上一致并不等价于计算结果一致,因为浮点操作缺乏精确度。在一些情况下,这些优化可能导致意料之外的结果。幸运的是,在大部分情况下,最后结果可转载 2016-04-26 10:05:40 · 265 阅读 · 0 评论 -
关于全局数组的初始化
1. 问题描述一个头文件mine.h,两个.cpp都include该mine.h,而且两个.cpp文件都要多次使用同一个常量数组array。2. 尝试过的失败方法(1)在头文件mine.h中定义全局数组array,出现重复定义的链接build错误。(2)分别在两个.cpp文件中定义全局数组array,同样出现重复定义的链接build错误。3. 正确的解决方法原创 2016-04-26 10:09:25 · 2662 阅读 · 0 评论 -
vs2008下win32 dll封装笔记
参考:http://www.cnblogs.com/wdhust/archive/2010/06/01/1749148.htmhttp://www.cppblog.com/XiaoMeiAQing/archive/2009/10/01/97697.htmlhttp://xiaoou2002.blog.163.com/blog/static/21586669200922652738585/原创 2016-04-26 10:10:48 · 464 阅读 · 0 评论 -
c++ 随机数生成
一、标准库(被包含于中)提供两个帮助生成伪随机数的函数:函数一:int rand(void);从srand (seed)中指定的seed开始,返回一个[seed, RAND_MAX(0x7fff))间的随机整数。函数二:void srand(unsigned seed);参数seed是rand()的种子,用来初始化rand()的起始值。二、rand()的用法原创 2016-06-21 15:54:39 · 1229 阅读 · 0 评论 -
关于项目配置、链接库冲突、main参数输入
1. 如何在编译器(vs2008)里设置调用别人写好的lib和dll步骤:(1) Tools->options->projects and solutions->VC++ directories分别在包含文件,库文件填加了路径(这些路径只告诉编译器怎么找文件,没有说把那里面的文件加入工程.)(若不设置,编译报错:无法打开***文件)这步是对所转载 2016-06-21 15:59:06 · 413 阅读 · 0 评论 -
文件夹是否存在,创建文件夹
1. access函数判断文件夹或者文件是否存在函数原型: int access(const char *filename, int mode);所属头文件:io.hfilename:可以填写文件夹路径或者文件路径mode:0 (F_OK) 只判断是否存在 2 (R_OK) 判断写入权限 4 (W_OK) 判断原创 2016-06-21 16:00:49 · 355 阅读 · 0 评论 -
C++中string类对象的成员函数c_str()与C语言中字符串的联系
语法: const char *c_str();c_str()函数返回一个指向正规C字符串的指针, 内容与本string串相同. 这是为了与c语言兼容,在c语言中没有string类型,故必须通过string类对象的成员函数c_str()把string 对象转换成c中的字符串样式。注意:一定要使用strcpy()函数 等来操作方法c_str()返回的指针 比如:最好不要这样:原创 2016-04-26 09:42:01 · 593 阅读 · 0 评论