随笔分类 -  编程学习-C/C++

摘要:在windows下编程操作文件目录时,文件目录一般是如下的形式:C:\\folder1\\folder2\\folder3\\file.txt而在Linux或者Mac系统下,文件目录则一般是这样子的形式:/user/lib/file.txt注意在写code的时候进行区别 阅读全文
posted @ 2015-01-06 22:06 jiayouwyhit 阅读(998) 评论(0) 推荐(0) 编辑
摘要:以前一直想当然的以为vector 的clear()函数会保证释放vector的内存,今天网上一查资料发现完全不是我想象的那样子。比如有如下代码:1 tempObject obj1;2 tempObject obj2;3 vector tempVector;4 5 tempVector.pushbac... 阅读全文
posted @ 2014-07-30 14:59 jiayouwyhit 阅读(7890) 评论(1) 推荐(0) 编辑
摘要:gcc -c a.c 编译成目标文件a.ogcc -o a a.o 生成执行文件a.exegcc a.c 生成执行文件a.exegcc -o a -c a.c 编译成目标文件agcc -o a a.c 生成执行文件a.exe在a.c中引用test.c中的一个函数后:gcc -c test.c 编译成... 阅读全文
posted @ 2014-07-14 16:47 jiayouwyhit 阅读(558) 评论(0) 推荐(0) 编辑
摘要:总的结论: 将template function 或者 template class的完整定义直接放在.h文件中,然后加到要使用这些template function的.cpp文件中。1. 现象描述 类似于参考文献[1],当我们以如下方式使用模板函数时,会出现模板函数声明、定义分离带来的链接错误:... 阅读全文
posted @ 2014-07-10 20:37 jiayouwyhit 阅读(3911) 评论(0) 推荐(2) 编辑
摘要:以下是转载于网上的一个很好的config文件的实现,留存以备案 1 //Config.h 2 #pragma once 3 4 #include 5 #include 6 #include 7 #include 8 #include 9 10 11 /* 12 * ... 阅读全文
posted @ 2014-07-10 19:55 jiayouwyhit 阅读(456) 评论(1) 推荐(0) 编辑
摘要:1、new 是c++中的操作符,malloc是c 中的一个函数2、new 不止是分配内存,而且会调用类的构造函数,同理delete会调用类的析构函数,而malloc则只分配内存,不会进行初始化类成员的工作,同样free也不会调用析构函数3、内存泄漏对于malloc或者new都可以检查出来的,区别在于... 阅读全文
posted @ 2014-05-26 21:18 jiayouwyhit 阅读(2259) 评论(0) 推荐(0) 编辑
摘要:1. map的erase函数使用 这里首先要注意,C++针对map的erase函数有不同的函数原型,这往往是出现问题的关键所在。根据参考文献1: 在C++98中:(1) void erase (iterator position);(2)size_type erase (const key_type... 阅读全文
posted @ 2014-05-22 10:28 jiayouwyhit 阅读(1168) 评论(0) 推荐(0) 编辑
摘要:在线查看的网址:https://software.intel.com/sites/landingpage/IntrinsicsGuide/Intel® 64 and IA-32 Architectures Software Developer's Manualshttp://www.intel.co... 阅读全文
posted @ 2014-05-21 19:45 jiayouwyhit 阅读(2138) 评论(1) 推荐(0) 编辑
摘要:先看一段代码实验:#include#includeusing namespace std;int main(){ unsigned int i = numeric_limits::max(); float f = i; unsigned int j = (unsigned int ... 阅读全文
posted @ 2014-05-20 14:30 jiayouwyhit 阅读(3407) 评论(0) 推荐(0) 编辑
摘要:1.数值常数有:整型常数、浮点常数; 2.只有数值常数才有后缀说明; 3.数值常数后缀不区分字母大小写。 (1)整型常数的表示形式有:十进制形式、以0开头的八进制形式、以0x开头的十六进制形式,无二进制形式。 整型常数默认是signed int的。 对整型常数进行类型转换的后缀只有:u或U(uns... 阅读全文
posted @ 2014-05-20 14:16 jiayouwyhit 阅读(4838) 评论(0) 推荐(0) 编辑
摘要:在STL的queue 或者 vector、list等容器适配器或者容器中,会经常用到的函数就是push()或者push_back()函数,但是有一点需要明确的是:在使用这些函数对容器/适配器对象增加新元素的时候,实际上是对原有的元素对象复制重新新建了一个元素对象作为元素压入到容器/适配器对象中。例如... 阅读全文
posted @ 2014-04-29 09:28 jiayouwyhit 阅读(1008) 评论(0) 推荐(0) 编辑
摘要:在利用fprintf函数将数据按格式输出到文件中时,通常需要限定数据的格式,例如:FILE *f=fopen("d:\\1.txt","w+");int a =20;float b = 3.006544;double c = 6.2154857;fprintf(f,"%6d%c",a,',');fp... 阅读全文
posted @ 2014-04-28 15:57 jiayouwyhit 阅读(748) 评论(0) 推荐(0) 编辑
摘要:在讨论全局变量之前我们先要明白几个基本的概念:1. 编译单元(模块): 在IDE开发工具大行其道的今天,对于编译的一些概念很多人已经不再清楚了,很多程序员最怕的就是处理连接错误(LINK ERROR), 因为它不像编译错误那样可以给出你程序错误的具体位置,你常常对这种错误感到懊恼,但是如果你经常使用... 阅读全文
posted @ 2014-04-25 19:53 jiayouwyhit 阅读(586) 评论(0) 推荐(0) 编辑
摘要:argc是命令行总的参数个数 argv[]是argc个参数,其中第0个参数是程序的全名,以后的参数 命令行后面跟的用户输入的参数,比如: int main(int argc, char* argv[]) { int i; for (i = 0; i>i; return... 阅读全文
posted @ 2014-04-24 21:16 jiayouwyhit 阅读(254) 评论(0) 推荐(0) 编辑
摘要:这俩函数看上去长得太像了,笔者曾经马大哈地把两者当成一个函数了(确实长得很像),知道有一天发现返回的值离预期值差很远差仔细查了下。1. getTickCount()实际上,该函数为opencv中的函数,该函数返回的值为自从某一时刻(比如计算机启动)开始,计算机总共经过的tick的次数,其需要结合ge... 阅读全文
posted @ 2014-04-23 17:23 jiayouwyhit 阅读(2848) 评论(1) 推荐(1) 编辑
摘要:摘要: 非const 引用形参只能与完全同类型的非const对象关联。 具体含义为:(1)不能用const类型的对象传递给非const引用形参; (2)实参类型必须与非const引用形参的类型完全一致,例如,不可以将一个float对象传给 double &类型的引用形参;(3)不能将一个右值类型的... 阅读全文
posted @ 2014-04-22 18:54 jiayouwyhit 阅读(2018) 评论(0) 推荐(1) 编辑
摘要:当用cout 或者 printf()对char 或者 unsigned char类型数据进行输出的时候,默认输出的都是字符,而不是字符对应的数值。如果要输出数值,必须做int 类型数据的强制转换。例如:cout(i,j)(i,j)<<",";输出为: 阅读全文
posted @ 2014-04-18 13:05 jiayouwyhit 阅读(2580) 评论(0) 推荐(0) 编辑
摘要:静态局部变量 静态局部变量。 从称呼上我们可以看出,静态局部变量首先是一个局部变量,因此其只在定义它的函数内有效,冠以静态的头衔后,其生存期就被延长了,不会随着函数的返回而被撤销。我们可以这样来理解:静态局部变量就是在程序生存期间一直有效,但只能在定义它的函数中使用的一种变量。 静态局部变量的... 阅读全文
posted @ 2014-04-18 11:10 jiayouwyhit 阅读(1938) 评论(0) 推荐(0) 编辑
摘要:最近的一个项目中遇到了调用别人的sdk接口(dll库)而传给我的是一个vector指针,用完之后还要我来删除的情况。这个过程中首先就是在我的exe中将其vector指针转为相应指针再获取vector中相应的数据问题,始终都获得不了正确的数据,要么就是一些非法的数据;另一个问题就是delete这个指针时候会产生相应异常(针对这个问题的思考:如果EXE和DLL都链接到DLL的C/C++运行期库,那么代码将能够很好地运行.但是,如果两个模块中的一个或者两个链接到静态C/C++运行期库,那delete的操作就会失败.)。这叫一个折腾的纠结啊。搜罗了一些网络资料以备以后的参考学习:(1)对于STL,在D 阅读全文
posted @ 2013-12-26 14:53 jiayouwyhit 阅读(4442) 评论(0) 推荐(1) 编辑
摘要:对于容器,当容器的各个元素为类类型,且该类类型中含有指针成员时:如果类类型的析构函数中包含了对指针变量指向内存的释放操作,则在利用clear()函数删除容器所有元素时,会自动调用类的析构函数,自动实现各个元素中指针指向的内存的释放,由此可以省去手工依次释放内存的代码操作;但是对于容器的erase()操作,该函数不会自动调用类成员的析构函数,因此需要手工释放被擦除元素的内容。切记! 阅读全文
posted @ 2013-10-29 16:32 jiayouwyhit 阅读(624) 评论(0) 推荐(0) 编辑