c++
爱若一生
C 菜鸟即将精通
展开
-
看项目做笔记
1.2.#define _USE_32BIT_TIME_T ,定义了这个类型,那边time_t就是32位的原创 2014-05-22 15:36:42 · 833 阅读 · 0 评论 -
我的经验
1. 当一个模块所需的一些自定义struct , enum , union 和一些全局变量等等,他们都需要被使用到多个类中,虽然放在某个类内定义很合适。但是,这时候你就需要去考虑到类的先后顺序:即 #include "xxxx.h"要考虑这些头文件的引用的先后顺序。 所以有点麻烦,万一以后需要变了,需要把类的先后定义顺序改掉。那比较麻烦的:所以,我们可以给该模块,提供一个 类,专门放些什么呢:原创 2012-09-12 13:47:01 · 587 阅读 · 0 评论 -
STL
map:#include map g_map;g_map[ id ] g_map.count( id ); 返回一共有几个key值是id的元素g_map.find( id );返回第一个key值是id的元素原创 2013-05-03 14:24:09 · 511 阅读 · 0 评论 -
程序员自我修养链接库笔记
第二章节:1.预编译:gcc -E cwj.cpp -o cwj.i 展开宏,删除空格字符,添加行号,去除所有的注释2.汇编: gcc -S cwj.i -o cwj.s 3. 可执行: gcc -c cwj.s -o cwj.o as cwj.s -o cwj.o as是汇编器4.链接: ld -static 1.o 2.o 3.o 4.o 得到a.ou原创 2012-11-20 16:38:54 · 657 阅读 · 0 评论 -
无解的工作经验
首先声明:也许是公司的库有问题。呵呵1. 我用string str; fileMan.ReadFile(str, 0, 1000000); str用作接收变量把该文件所有字符读取到str中,然后我打印str,值打印到中途就不打印了,我猜测也许是遇到了\0结束符号,然后我试着用char* buf = new char[10000000] 去做为接收变量,coutcout原创 2012-11-09 08:00:03 · 1045 阅读 · 0 评论 -
多线程文件读写锁
http://blog.163.com/software_ark/blog/static/175614594201181665330631/三、读写锁的一些函数操作相关函数说明初始化读写锁pthread_rwlock_init 语法读取读写锁中的锁pthrea原创 2012-12-11 11:07:10 · 806 阅读 · 0 评论 -
c++工作宝贵经验呀,我去。。。。
2. 常见运行时错误2.1 terminate called after throwing an instance of 'std::bad_alloc'下面这个错误,我的程序在数据量太大才出现的。分析了一下,确定以前遗留代码中频繁的使用 new 生成数组,再使用 delete[] 删除。最后修改为声明数组(我的程序只需要一个读写 buffer 区):terminate cal转载 2012-11-05 17:05:55 · 32455 阅读 · 2 评论 -
cURL的错误代码
CURLE_OK(0)所有罚款。继续像往常一样。CURLE_UNSUPPORTED_PROTOCOL(1)你的URL传递给libcurl的使用协议,这libcurl的不支持。支持可能是你没有使用一个编译时的选项,它可以是一个拼写错的协议字符串,或者只是一个协议的libcurl没有代码。CURLE_FAILED_INIT(2)非常早期的初始化代码失转载 2012-10-18 16:24:23 · 19299 阅读 · 0 评论 -
expected class-name before '{' token
错误原因1. 头文件引用的类中,结尾可能少了; ,, 例如:class Cwj{} 忘记了以;结尾哦。2. 引用的头文件的顺序先后相互冲突:例如:Msg类中包含了#include "Socket.h"文件,但是,你却又在Socket.h中引用了#include "Msg.h".这样,就导致了先后顺序的“我靠,你到底要我怎么样麻,编译器就晕死了。” ===》 当然,还存原创 2012-09-07 10:08:00 · 46708 阅读 · 3 评论 -
运算溢出
七:计算机是采用补码表示的。1.有符号用补码表示的范围: 2(n-1) x=8,===> -128 ~~ 127x=16,==> -32768 ~~ 327672.如果运算时,结果超出该存储单位所能表示的范围,那么就叫溢出。 正数+正数=负数;表示益处。+72 + +98 = +170 》 +1270 1 00 1 000 B0 1 10 0 010 B---原创 2013-06-30 20:34:22 · 2696 阅读 · 0 评论 -
linux下线程创建失败问题
linux下线程创建失败问题写个碰到的问题,记录下自己的技术之路点滴pthread_detach(pthread_self())linux线程执行和windows不同,pthread有两种状态joinable状态和unjoinable状态,如果线程是joinable状态,当线程函数自己返回退出时或pthread_exit时都不会释放线程所占用堆栈和线程描述符(总计8K多)。原创 2013-01-09 13:36:44 · 2615 阅读 · 1 评论 -
HTTP协议的详细解释
http://www.cnblogs.com/li0803/archive/2008/11/03/1324746.html转载 2014-04-29 15:18:41 · 724 阅读 · 0 评论 -
map key char*
STL中map的key能否用char *呢?当然可以!在程序中需要用到一个map,本来是这样写的,map mapStr;为了追求效率,把string改成了char *,map mapStr;结果呢?可想而知,每次放进去的是指针,当查找的时候就出问题了,总是找不到。因为key中存放的是指针,当然找不到了。需要重载一下操作符,当查找时比较指针对应转载 2014-03-11 12:04:17 · 6332 阅读 · 0 评论 -
进制转换
二转十: 110010111000100011*2^0 + 1*2^4 + 1*2^8 +1*2^9 +1*2^10 + 1*2^12 + 1*2^15 + 1*2^16十转二:97 --> 97/2 = 48 余 148/2 = 24 024/2 = 12 012/2 = 6 06/2 = 3原创 2014-02-28 15:39:32 · 751 阅读 · 0 评论 -
设计方面
1.模块与模块之间,最常用的设计 1.中心点,向外扩散,各个模块的通信通过中心原点,他们之间没有任何关系。 2.单链表形式,一个模块被上一个模块调用,下面的模块完全与上面的模块无关。mvc原创 2013-12-19 20:00:30 · 765 阅读 · 2 评论 -
关于char wchar_t 和 unicode utf8等混淆概念
以下内容转载:对电脑而言没有乱码,只有二进制字节;对人脑才有乱码。******************************首先,内存中的数据是单纯的二进制数据,当然你要用十六进制来表示它也可以不管你用什么指针指向这段内存,数据就是数据,不会有任何改变你是用char*也好,用int*也罢,甚至用string*都一样,它们都只是指针,类型+地址而已,和它们指向的那段内存转载 2013-11-11 14:46:17 · 2864 阅读 · 0 评论 -
extern
1.引用外部变量; extern int a;2.定义为可以被外部变量使用的变量; extern int a = 0;3.引用外部的函数; extern int abc(){} ; 这样的好处就不必把该函数所在的头文件包含进来。可以加速编译过程(加速预处理过程),因为只要链接好,即使不加头文件都是可以调用的嘛。4.定义为可以被外部对象使用的函数;extern int abc(){}原创 2013-11-21 09:22:33 · 847 阅读 · 0 评论 -
C++复习(继承,运算符)
----------------------继承: ,,,,(俺要主攻uc,还要回珠海工作)1.子类继承父类方式:1.public 2.protected 3.private 通过public继承下来的,都不变 通过protected继承下来的,原有父类的public函数,将转化为protected来继承。 通过private继承下来的,原有父类的public ,protecte原创 2011-12-25 22:08:18 · 1034 阅读 · 0 评论 -
在main函数执行之前和执行之后执行的方法<转载>
main函数执行之前,主要就是初始化系统相关资源:后来看到一本书,详细阐述了main之前和之后的详细机理,十分推荐阅读:程序员的自我修养 --链接、装载与库 实际上,在可执行文件被加载之后,控制权立即交给由编译器插入的Start函数,它将对后面这些全局变量进行准备: _osver 操作系统的构件编号 _winmajor 操作系统的主版本号转载 2012-03-29 21:13:41 · 932 阅读 · 0 评论 -
C++新发现
1. 类1中引用了类2中定义的某个枚举、结构体或者他们的类型,那么,也会去掉类2的构造函数来造出这些个类型变量滴。 不知道这样做有没有什么坏处和好处?大家知道吗?告诉我也好哦。比如:#include "Clas2.h"class Clas1{public: Clas1(Clas2::Enum_Model model) : mode(model)原创 2012-09-07 10:32:56 · 939 阅读 · 0 评论 -
关于时间函数localtime()返回值的注意问题
因为localtime()返回的是 static静态的变量,所以:静态变量在进行多线程编程时是危险的。所以,我们要注意,如果涉及到多线程的编程,就必须要避免多个用户访问localtime()返回的变量的值的问题的时候,该static变量里面 的值总是发生改变。(因为我的项目中要求要设置新值进去,所以不能这样子,而是应该用个临时变量来保存localtime()的值,然后再在那个临时变量去设置和修原创 2012-08-13 13:46:52 · 14190 阅读 · 0 评论 -
怎样用c程序处理涉及到毫秒的时间加减?
简单的加减可能存在问题。对于月日需要编程者考虑28-29,30-31以及是否闰月的问题。不会有问题mktime函数里面考虑了超过31甚至是小于0的情况它会帮你进位的,所以跨月,跨年都没关系(我试试看罗先。确实没有问题的,跨年跨月都是没有问题的。)年要+1900 , 月要+1.才能正确的哦。1 用strptime()函数把字符串按照转载 2012-08-13 09:30:21 · 1923 阅读 · 0 评论 -
C++基础作业
作业: 1)请用指针类型,引用类型来实现一个值的交换函数 Swap(string* a,string* b) Swap(string& a,string& b) 2)请设计一个函数把两个字符串参数连接成一个新的大字符串,并返回给调用者,最终显示出大字符串: Int main() { string a=”神马”,b=”是浮云!”; cout }作业1:原创 2012-01-02 09:45:57 · 1003 阅读 · 1 评论 -
模板的复习
1.template class Arry{}; Arry:是模板. Arry:才是类. : 属于编译时替换。2. 模板特例化:模板主要用于通用的功能:类或函数,但并不是每个都通用,总有一些特例存在(某些数据类型不支持通用的操作),因此,模板特例化是为了这么一些特例存在的。 类名,函数名, 尖括号在他们的后面,内部必须跟具体的类型(不带变量名),这就是特例化。(如同:函数重载原创 2011-12-29 22:32:12 · 772 阅读 · 0 评论 -
编程一些要注意的地方:c/c++
1. 用string作为参数的时候,在方法里面需要if(strlen(str)>0)一下,否则这个空字符也是符合条件传过来的。" ", 2. 定义了一些变量,我们要即使的给与初值:防止垃圾值的滥用:struct strudent s1; bzero(s1,sizeof(s1)); // bzero是个好东西。呵呵 :::错了,改正:bzero(&s1,sizeof(s1)),原创 2011-12-25 23:52:19 · 731 阅读 · 0 评论 -
C++模版————复习
模版的复习: class typename1. template :模版是参数化的类/函数 ----->其2.模版底层其实是用typeid来探测其实际的类型。3.模版声明都是防止 类/函数的 前面: template class abc{}; template void abc(){} template void arry::getAbc(){}。4.重大好消息: 现在我原创 2011-12-28 23:16:11 · 512 阅读 · 0 评论 -
一些要打上几万遍养成好习惯的模式代码:对cwj说的,你有空就要打上好几百次哦,别忘记了
1.new delete NULL的模式 C++:(帮助我们记住要释放空间)father * fp=new son();delete fp;fp=NULL; 2.scanf while getchar() \n 的模式 c: (帮助我们scanf的标准写法)int iReturn = scanf("%d %f",&n,&f);//得到有效输入参数个数while(g原创 2011-12-25 01:09:56 · 662 阅读 · 0 评论 -
C++文件操作指针移动-----off_t
readfile.seekg(-3*sizeof(person),ios_base::cur);===>readfile.seekg(-3*(off_t)sizeof(person),ios_base::cur);sizeof()返回的size_t是无符号的,而off_t是有符号的 f.seekg(-3*sizeof(s),ios::cur); ------该语句没有移动原创 2011-12-24 22:00:36 · 9958 阅读 · 0 评论 -
瞎说呗
1. 居然在unix/linux下面,gcc不能编译.cpp的文件。还报错哦。呵呵 2. 文件修改是通过指针移动到那个首位置,然后再用bzero(&str,sizeof(str)), fwrite(&str,sizeof(str),1,file);删除是通过写一个空对象进去,这样覆盖了就删除了。bzero()是好朋友。3.void 返回类型,我们可以return ;这样达到结束原创 2011-12-25 22:27:15 · 487 阅读 · 0 评论 -
C++常量折叠
C++代码如下: const int a=9; int *p=(int*)&a; *p=10; printf("a: %d , *p %d",a,*p); //a: 9 ,*p: 10为什么*p改变了,但是a没有改变呢?(g++)(google:常量折叠.源于编译器的优化.因为是常量,会直接当作常数输出,不会检测你是否改变了他.原创 2011-12-25 23:22:46 · 588 阅读 · 0 评论 -
EOF在Windows和Unix/Linux下的处理机制
请问cin>>和cin.get()对EOF的处理机制#include#includeusing namespace std;int main(){ char c; while(!cin.eof()) cin.get(c);//cin>>c; return 0;}采用cin.get()的时候运行时输入一个^Z程转载 2012-03-07 11:00:20 · 1121 阅读 · 0 评论 -
c/c++时间操作相关函数
asctime(将时间和日期以字符串格式表示)相关函数time,ctime,gmtime,localtime表头文件#include定义函数char * asctime(const struct tm * timeptr);函数说明asctime()将参数timeptr所指的转载 2012-08-13 09:14:44 · 2073 阅读 · 0 评论 -
c/c++时间相关
可以使用公式clock()/CLOCKS_PER_SEC来计算一个进程自身的运行时间。例如: void elapsed_time() { printf("Elapsed time:%u secs.\n",clock()/CLOCKS_PER_SEC); }请问为什么要除 CLOCKS_PER_SEC?因为clock()是以豪秒为单转载 2012-08-13 09:05:20 · 945 阅读 · 0 评论 -
c++以const&作为返回值的意义何在
const rational operator*(const rational& lhs, const rational& rhs);很多程序员第一眼看到它会纳闷:为什么operator*的返回结果是一个const对象?因为如果不是这样,用户就可以做下面这样的坏事:rational a, b, c;...(a * b) = c;原创 2011-12-29 23:44:34 · 3499 阅读 · 0 评论 -
socket为什么无法绑定?
socket为什么无法绑定? Q:我绑定socket的时候总是失败,只有开机第一次运行程序的时候可以绑定,然后以后就不行了,当我使用另外一个程序连接此端口的时候却连不上,但是我用端口扫描软件却可以扫到这个端口,请问大侠是什么原因?如何解决?谢谢了先。A:1.先确定该socket正常关闭 2.如果一个socket绑定了某个端口,该sock原创 2012-05-17 10:22:12 · 5582 阅读 · 0 评论 -
c++ find
1.麻痹的:find () 找到了返回 位置索引,没有找到就返回string::npos , 并不是返回-1, 我去。。 搞得我还判断错了。哈哈, 记住记住啊啊啊啊啊。2.注意,c++的write()写方法,返回的是成功写入的字符数量,而不是0,别瞎判断,晕死。3.注意:找不到库,说明就是没有引用到。这个别瞎猜哦。。。。 not find lib object ,fil原创 2012-05-23 16:16:30 · 790 阅读 · 0 评论 -
C++文件操作详解
http://apps.hi.baidu.com/share/detail/6366155转载 2012-05-22 22:31:24 · 495 阅读 · 0 评论 -
error you
1. #include "interpace.cpp" ; 重复定义。我去。。。。2. permission denied : system("./Test.sh") 忘记给.sh文件加上x权限了,即可执行权限。 3.ps -ef | grep NearLineCloud | grep -v grep 去除掉grep进程。原创 2012-05-05 14:23:17 · 554 阅读 · 0 评论 -
我学习C++:无题(每日追加型,小心爆了:酱爆)(一)
--------这是俺滴学习笔记,不一定都对,如果错了大家可以留言纠正(初学c++中,到目前语法基本学完,就这么个水平。呵呵)---------------------------(I/O那节课) 1. 我发现老师学习c++有个好的方法:那就是善于总结一小块知识点,理解成1-2句话,那就好记了。比如:I/O的操作,即控制光标的移动罢了。2.善用return NULL; 不用else原创 2011-12-24 23:43:15 · 1164 阅读 · 0 评论