- 博客(90)
- 资源 (28)
- 收藏
- 关注
原创 面向对象构造、析构和virtual规则
1)构造函数是从基类到子类逐步构造,像一颗生长的树。2)析构函数是从子类到基类逐步析构,像一颗退化的树。3)基类声明了一个成员函数为virtual,子类只要重写了该方法,无论是否声明为virtual,都将具有多态的性质。#include using namespace std;class A{public: A(){cout << "constructed A"<< end
2016-11-15 17:57:23
723
转载 STL中map的成员函数insert的返回值
map在进行插入的时候是不允许有重复的键值的,如果新插入的键值与原有的键值重复则插入无效,可以通过insert的返回值来判断是否成功插入。下面是insert的函数原型: pair insert(const value_type& x);可以通过返回的pair中第二个bool型变量来判断是否插入成功。下面是代码:#include #include i
2016-11-11 11:31:17
8869
原创 获取CTreeCtrl所有结点的附加数据(ItemData)
vector GetTreeCtrlAllNodeItemData(CTreeCtrl& _ctrl){ vector lstItmData; HTREEITEM hItem=_ctrl.GetRootItem(); DWORD_PTR itmData = NULL; if (NULL == hItem) { return lstItmData; } do { it
2016-10-17 16:21:53
3406
原创 浮点数与零比较
int FloatCompareZero(float f){ if (f > 0.00000001) { return 1; } if (f < -0.00000001) { return -1; } return 0;}
2016-10-09 17:45:17
1339
原创 折半查找递归和非递归实现
//递归int BinarySearch(int arr[],int n,int left, int right){ if (left <= right) { int middle = left + (right - left)/2; //防溢出 if (n == arr[middle]) { return middle; } else i
2016-08-19 18:16:32
854
原创 单链表的创建、插入、删除、销毁以及查找中间结点
#include #include #include //链表结构typedef struct _tagLinkList { int num; //数值 struct _tagLinkList *next; //链表下一个结点}LinkList,*PLINK;//初始化链表bool init_list(PLINK* head){ PLINK pLink = NUL
2016-07-12 21:54:49
1575
原创 根据某一分隔符分隔字符串
函数原型:BOOL AfxExtractSubString(CString& rString, LPCTSTR lpszFullString, int iSubString, TCHAR chSep = '\n')参数说明:rString 保存输出的子字符串lpszFullString 待分割的字符串iSubString 提取的子字符串的序号,从0开始
2016-04-20 10:23:58
804
原创 交换两个字符串内容
#include static void swap_string(char **p1, char **p2){ char *tmp = NULL; tmp = *p1; *p1 = *p2; *p2 = tmp;}static void swap_strings(char *src[][2],unsigned int row){ unsigned int i = 0;
2015-06-16 13:05:15
3738
原创 判断是否含有子串
#include #include unsigned char is_sub_array(int arr[],int arr_len,int subarr[],int subarr_len);unsigned char is_sub_array1(int arr[],int arr_len,int subarr[],int subarr_len);int main(){
2014-12-04 16:33:04
905
原创 获取bcd码的长度
unsigned int get_bcd_length(const unsigned char* bcd){ unsigned int length = 0; while (((*bcd&0xf0) != 0xf0) && ((*bcd&0x0f) != 0x0f)) { length += 2; ++bcd; } if (*bcd == 0xff)
2014-10-24 13:38:31
1421
原创 C++ Sort函数用法
#include using namespace std;#include #include typedef struct Test{public: int n; char* s;}Test;vector t;bool intcmp(Test a,Test b){ return a.n < b.n;}bool st
2014-09-02 13:40:18
990
原创 双链表基本操作
#include #include #include #define DNODE_SIZE sizeof(DNode)typedef struct _tagDNode{ int value; struct _tagDNode *prov; struct _tagDNode *next;}DNode;DNode* create_double_lin
2014-06-17 16:29:00
740
原创 自己写的单链表操作
#include #include #include #define NODE_SIZE sizeof(Node)typedef struct _tagNode{ int value; struct _tagNode *next;}Node;Node* createlink(Node *cur){ Node* pn = NULL; pn
2014-06-16 17:19:27
737
原创 根据结构体某个成员的地址求出结构体所有成员的值
思路:根据结构体部分成员的值,求出该结构体的首地址,从而求出所有成员的值。下面是一个结构体的内存模型低地址 ——> 高地址|_________|______|______|_____________|首地址 成员1 成员2 成员3 …… 末地址 根据内存模型,思考:如果可以求出某个成员的地址,再求出该成员离首地址
2014-06-04 18:02:45
1739
原创 通过子网掩码判断两个IP是否在同一网段
#include #include #include unsigned char checkipv4seg(int seg){ if (seg 255) return 0; return 1;}unsigned char checkvalid(const char* ipv4){ int seg1,seg2,seg3,seg4; int
2014-04-17 18:23:02
2699
原创 输入年月日,求该年年初到此时的天数
#include unsigned char leapyear(int year){ if((year % 400 == 0) || (year % 4 == 0) && (year % 100 != 0)) return 1; return 0;}unsigned char checkvalid(int year, int month, int day)
2014-04-15 15:23:34
1183
原创 获取一个整型的每八位
#include typedef union tagTestEndian{ char ch; int n;}TestEndian;int main(){ int ip = 0x12345678; TestEndian t; t.n = 1; if (t.ch) {//大端 printf("%x %x %x %x\n",((uns
2014-04-04 18:22:52
1218
原创 获取一个子字符串第一次出现的位置
int substr(const char *src,const char *substr){ const char *p1,*p2; if (src == NULL || substr == NULL) { return -1; } p1 = src; while (*p1) { p2 = substr; if (*p1 != *p2
2014-04-04 17:10:58
2195
原创 从键盘输入任意个数字,以0为结尾,输出其中最大值
很简约的一段代码#include #include int main() { int a = INT_MIN; int Max; for (Max = a; a; scanf("%d",&a)) { if(a > Max) Max = a; } printf("Max number is:%d\n",Max); return
2014-04-01 17:27:06
5251
原创 通过void指针实现跨类型变量交换函数
#include #include #include void fun(void **src,void **dst){ void *tmp; tmp = *src; *src = *dst; *dst = tmp;}void swap(void *src,void *dst,int size){ void *tmp = malloc(size);
2014-03-27 09:18:11
1491
原创 字符过滤【二】有顺序的过滤重复字符
#include typedef struct tagFilterChar{ int ch; int n;}FilterChar;void insert_sort(FilterChar* arr,int n) { int i,j; FilterChar temp = {0}; for(i = 1;i < n; i++) { tem
2014-03-20 16:59:31
799
原创 字符过滤
#include void filterchar(const char* src, char* dst){ const char* p; int ch; int flag[0xff] = {0}; int i; if (src == NULL || dst == NULL) return ; p = src; while (ch = *p++) {
2014-03-19 10:46:57
734
原创 单词统计
#include using namespace std;#include #include long long getwordcount(map wordcount){ long long count = 0; for (map::iterator iter = wordcount.begin(); iter != wordcount.end(); ++i
2014-03-18 14:29:41
944
原创 获取整型数字某一位的值
int GetNumber(int opt_num,int pos){ int opt = opt_num < 0?-opt_num:opt_num; int res = 0; if(pos < 0) return -1; while(opt&&(pos-- >= 0)) { res = opt%10; opt /= 10; } return res
2014-01-23 10:50:08
2425
原创 判断是否是自守数
bool IsAutoMorphicNum(unsigned int num){ unsigned long long int pow = (unsigned long long int )num*num; while(num) { if(num%10 != pow%10) return false; num /= 10, pow/= 10; } ret
2014-01-14 10:06:58
4546
原创 求1到n的正整数中某个字符出现的次数
我自己写了一个,但是效率很低,大整数的时候比较慢,代码如下:#include #include int CountOf1s(int n, char ch ){ int i = 1; int num = 0; int count = 0; int temp = 0; if(ch '9' || n < 1) return -1; num = ch -
2013-12-28 19:05:17
1729
原创 C和C++中的结构体对比
在C语言中,结构体里的内容只能是const类型、普通变量或者结构体,而且不能被赋处置,即使是const类型的量。结构体中的所有成员对外都是可见的。像这样都是可以满足的typedef struct tagTest{ struct t { char ch; }; const int i; float f; enum tagDate { year,
2013-12-25 11:43:00
1039
原创 获取32位整型变量中某一位的bit值
#include typedef unsigned int UINT_32;typedef unsigned char UINT_8;UINT_8 GetBit(UINT_32 number,UINT_32 index){ if(index 31) return 0xff; //如果传入参数有问题,则返回0xff,表示异常 return (number>>i
2013-12-13 10:03:26
8206
原创 C陷阱与缺陷中的一个问题——signal函数声明的剖析
在《C陷阱与缺陷》这本书的第2.1节“理解函数声明”中,作者通过对函数声明的一步步分析、引导、深入,最后得到一个signal函数:但是,当我第一次看到的时候也觉得没法理解,看过好多遍之后还是没法理解。这几天看《C++Primer》,突然明白了,所以就赶紧记录下来。我记得以前我在优快云论坛上提过一个问题:请问signal函数如何调用?其实,如果理解了signal函数
2013-12-13 00:25:16
1197
原创 memcpy和memmove的区别
前几天面试,华为的一个技术人员问我一个问题:memcpy和memmove有什么区别?当时,我没回答上来。我只知道它们的入参和返回值是一样的,区别还不是很清楚,说不上来,我说可能效率不太一样吧。其实,这两个函数的效率几乎是一样的,区别只是在于内存重叠时,memcpy不能保证拷贝的正确,而memmove却能保证拷贝的正确性。换句话说,memcpy是memmove的子集,memmove更
2013-12-02 21:48:43
1342
转载 SQL Server 2005 不允许远程连接解决方法、数据库引擎启动服务器的方法
SQL Server 2005 不允许远程连接解决方法 解决SQLServer2005数据库引擎启动服务器的方法 做课程设计时,很多学生都遇到这个问题。把解决方法写在这儿,供参考。 刚刚安装的数据库系统,按照默认安装的话,很可能在进行远程连接时报错,通常是错误:"在连接到 SQL Server 2005 时,在默认的设置下 SQL Server 不允许进行远程连接可能会导致此失败。
2013-09-27 09:24:48
1526
原创 为什么本机上无法用127.0.0.1登录SQL Server
数据库在本地,在测试数据库时,127.0.0.1突然连不上数据库了。无法在本机上用127.0.0.1登录SQL Server,是因为 SQL Server “服务器网络实用工具”中禁用了“命名管道”所致!(在SQL Server 2005中同样有这一现象) 所以,只有在sqlserver configuration manager中启动该服务就行。如图启动完之后,必须关闭
2013-09-25 14:26:58
9133
原创 SQL Server2005数据库的备份和还原详细
在管理系统的开发中,经常会遇到将一个数据库从一台电脑转移到另外一台电脑。实现方法是:首先备份源数据库,然后将备份的.bak文件还原即可。1.备份依据上面的方法可以备份一个数据库的.bak文件。2.还原在sqlserver上新建一个数据库继续选择备份文件。选择“源设备”,点击文本框右边的按钮“...”,在弹出的对话框中选择数
2013-09-25 10:04:30
1351
原创 貌似是微软编译器的一个Bug
有如下代码:#include int my_func(void){ /* float f = 0.0; */ return(0.0 ? 1 : 0);}int main(void){ printf("%s\n", ( my_func() ? "ONE" : "NIL") ); return 0;}在vc6.0和vs2010中运行,
2013-09-06 11:46:11
856
原创 递归打印实数
#include void printOut(int n);int main(void){ int num; printf("请输入一个数字:\n"); scanf("%d",&num); printOut(num);}void printOut(int n) { /*该整数的中间数都以正数打出*/ if(abs(n) >= 10) { prin
2013-09-02 18:01:38
828
原创 引论中的问题【page1】
方法一:排序,返回第几个最大值,编码如下:#include //插入排序void insertion_sort(int array[], int first, int last);int main(void){ int arr[10] = {8,4,5,1,7,9,2,3,1,0}; int key = 0; int i = 0; printf("求第几个最大值?输入:\n")
2013-09-02 16:31:43
770
原创 判断一行输入是否是数字(包含小数点)
bool judgeInput( char* pnumber, size_t length){ unsigned int i = 0; unsigned char isdot = false; //СÊýµã±ê¼Ç //ÅжϷǷ¨ÊäÈë for (i = 0;i < length; i++) { if (*(pnumber+i) '9') {//²»ÊÇÊý×Ö
2013-08-30 11:16:07
1160
转载 VC++多线程编程
留个纪念,不错的总结。十个例子清晰列举啦多线程编程的奥妙。 VC中多线程使用比较广泛而且实用,在网上看到的教程.感觉写的挺好.一、问题的提出编写一个耗时的单线程程序: 新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为“延时6秒”,添加按钮的
2013-08-08 11:41:58
834
C#多线程实现调用外部程序并获取打印结果
2020-10-22
C++日志打印google glog头文件和库文件大全(x86,x64,静态库动态库)
2019-12-04
Visual C++ Redistributable Packages合集
2019-09-19
tinyxml_2_6_2
2016-11-29
新概念51单片机C语言教程 入门、提高、开发、拓展全攻略_部分2
2013-06-13
The C programming Language
2012-11-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人