- 博客(20)
- 资源 (7)
- 收藏
- 关注
原创 C++网络编程
在基于Socket的C++网络编程中,我们常常需要保证服务器和客户端之间能够连续发送数据,由于TCP协议的三次握手机制,客户端每发送一次数据都需要重新建立通信socket用于传输,因此效率比较低,若对数据的完整性要求不是很高,如局域网聊天程序,可以使用UDP协议建立连接,即将流式套接字SOCK_STREAM改为数据报式套接字SOCK_DGRAM。以下给出了客户端与服务器端通信的代码,里面有基于
2016-03-21 09:53:25
556
原创 C/C++文件操作效率比较——FILE/fstream
利用GetTickTount函数进行效率测试,对比C/C++在读写文本文件和二进制文件时耗时大小,程序执行时间获取方式参见我另一篇C/C++获取程序执行时间的五种方式比较。电脑配置如下:(CPU四核八线程)代码如下:#include #include #include #include #include using namespace std;voi
2016-01-11 18:13:02
20982
5
原创 C/C++获取程序执行时间的五个方法对比
五种获取C/C++程序执行时间的方法对比如下:核心函数 头文件 函数库 精度 准确度QueryPerformanceCounter windows.h API us 非常准确GetTickTount
2016-01-10 22:48:10
10765
原创 C/C++文件操作2——fstream类
C++对文件的操作是通过stream的子类fstream(文件流)来实现的,须加入fstream头文件。1、打开文件 fstream file; file.open("a.txt", mode, access);mode是打开文件的方式,有如下几种:ios::app: 以追加的方式打开文件 ios::ate: 文件打开后定位到文件尾,ios:app就包含有
2016-01-10 10:52:13
692
原创 IT公司笔试题细节
1、定义signed char a = 0xe0; 对于int b = a; 和unsigned int b = a; 得到的值不一样,前者32位扩展用100...填充,即符号位保留,其他用位置为0;而后者则是用a的最高位数值进行扩展,所以得到的值为0xffffffe0;2、使用new动态创建数组时注意,基本类型的对象没有析构函数,所以回收基本类型组成的数组空间用 delete 和
2015-09-04 22:30:53
522
原创 C/C++编程Debug模式下变量在内存中的0xcccccccc、0xcdcdcdcd和0xfeeefeee三类初始化值
三类初始化值说明对于0xcccccccc和0xcdcdcdcd,在 Debug 模式下,VC 会把未初始化的栈内存上的指针全部填成 0xcccccccc ,当字符串看就是 “烫烫烫烫……”;会把未初始化的堆内存上的指针全部填成 0xcdcdcdcd,当字符串看就是 “屯屯屯屯……”。调试器这样做而不是让其取随机值,是为了方便我们调试程序,如果野指针的初值不确定,那么每次调试同一个程序就可能出现
2015-08-21 21:44:26
3520
1
原创 C++多线程编程入门3
利用CreateThread创建线程1、线程函数返回(最好使用该方法)。 2、通过调用ExitThread函数,线程将自行撤消(最好不使用该方法)。 3、同一个进程或另一个进程中的线程调用TerminateThread函数(应避免使用该方法)。 4、ExitProcess和TerminateProcess函数也可以用来终止线程的运行(应避免使用该方法)。
2015-08-21 18:51:19
423
原创 C++多线程编程入门2
在mfc中创建和结束线程上一篇讲到在mfc中,我们创建线程用AfxBeginThread函数比较合适。接下来利用mfc对话框程序来说明线程的创建和结束过程。新建的对话框类名为CMFCMultiThreadDlg,首先在界面上画三个按钮,分别是启动、暂停和关闭线程。再画一个编辑框控件作为线程函数的输出显示,代码如下:public: CEdit m_edtOutput;//编辑
2015-08-20 16:35:40
636
原创 C++多线程编程入门1
创建多线程的方式在C++中创建线程的四种方式:Windows底层API函数CreatThread、C/C++函数_beginthread / _beginthreadex、MFC库函数AfxBeginThread、Linux下的C/C++函数pthread_create和C++11标准中thread类。后两种本人用的不多暂不介绍,下面详细介绍前三种。CreatThread函数原型就不贴了,
2015-08-20 16:27:16
640
原创 C/C++常用字符类型char、CSting、string转化
char是C/C++的基本数据类型,CString是使用MFC时的字符数据类型,string是使用C++的STL时常用数据类型。1、CString to char*CString str_cs("haha");const char* p = str_cs.GetBuffer();若需要对字符串进行后续的处理,则应该使用new或者malloc对p指针进行动态内存申请,
2015-08-20 15:04:22
788
原创 动态链接库dll和lib文件的生成
vs2010封装dll和lib方法:1、新建空工程2、设置属性->常规->配置类型->动态库dll(当然也可直接新建dll工程)3、写入代码,宏定义、类和函数的声明在.h文件中写,定义部分在cpp文件中写:#pragma once#ifdef DLL_IMPLEMENT#define DLL_API __declspec(dllexport)#else#define DL
2015-08-20 15:02:30
624
原创 利用strlen和sizeof求取字符串长度注意事项
首先,strlen是函数,sizeof是运算操作符,二者得到的结果类型为size_t,即unsigned int类型。大部分编译程序在编译的时候就把sizeof计算过了,而strlen的结果要在运行的时候才能计算出来。对于以下语句:char *str1 = "asdfgh";char str2[] = "asdfgh";char str3[8] = {'a', 's', '
2015-08-18 16:41:26
15361
5
原创 使用vector容器存储动态申请内存变量的注意事项
初次接触vector的同学可能会因为方便而放弃使用new/delete、malloc/free等动态内存申请方式,当需要用到一个不确定空间大小的变量时,可以直接定义vector vecINum;vector> vecCName;vector vecMC;然后通过push_back/pop_back等操作动态增加数据。然而使用过程中如果涉及到动态内存申请,就需要注意以下的情况:#
2015-08-17 13:39:46
2499
转载 C语言函数sscanf()的用法
C语言函数sscanf()的用法sscanf() - 从一个字符串中读进与指定格式相符的数据. 函数原型: int sscanf( string str, string fmt, mixed var1, mixed var2 ... ); int scanf( const char *format [,argument]... ); 说明: sscanf与sc
2015-06-03 22:40:52
424
原创 C/C++文件操作1——FILE结构体
1、定义FILE指针并打开文件FILE *fp;if((fp = fopen("a.txt", mode)) == NULL){ printf("文件打开失败"); return;}这里面,mode有以下几种方式:文件使用方式 意义 "rt" 只读打开一个文本文件,只允许读数据
2015-06-03 22:23:57
1221
原创 国内著名IT公司官网log荟萃
Google浏览器为方便web开发人员工作提供了一个开发者工具,即进入Chrome,按F12或者右击页面选择“审查元素”即可查看当前网页所含的丰富信息(IE浏览器选择“检查元素”,360浏览器用的是谷歌浏览器内核,调出方式与其相同),在这里单独列一下各大IT公司给用户展示的有趣网页logs:百度:为了广纳贤士,诗一样的忽悠也是蛮拼的……百度地图:
2015-06-03 22:20:02
786
原创 OpenCV程序加速及C++中一些编程语法速度比较
首先判断图像是否连续,然后利用ptr指针直接对数据访问(用指针操作符),另外处理过程不变,但减少程序的循环次数,可以取原循环的1/4,最后可以利用OpenMP加速程序。1、判断两个数大小速度:if条件句(22.5ms) > ?:三目运算符(28.5ms) > 调用max,min函数(615ms),循环1000000次的结果。2、a+=1,a=a+1,a++,
2014-07-19 10:00:27
1928
原创 C++动态库静态库和Release、Debug版本的属性设置
工程属性页->配置属性->C/C++->代码生成中的运行库有四个,其对应的方式分别为:多线程(/MT) 静态库 release版本多线程调试(/MTd) 静态库 debug版本多线程DLL(/MD) 共享dll release版本多线程调试DLL(/MDd) 共享
2014-03-25 19:15:02
3346
原创 利用OpenCV和VS进行图像处理编程中的一些细节
opencv中类型Vec3b(x, y, z)和Scalar(a, b, c)与彩色图像RGB的对应关系有:x = a = B, y = b = G, z = c = R。
2014-03-07 12:52:24
880
models_VGGNet_VOC0712Plus_SSD.zip
2019-07-25
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人