- 博客(33)
- 资源 (2)
- 收藏
- 关注
原创 实现atoi函数
const int iMax = (1 const int iMin = -(1 int my_atoi(char *ch){ char *temp = ch; int sum = 0; //转换后的值 bool bPlus = true; //是否是非负数 if ('-' == temp[0]) {
2013-12-13 14:10:15
519
原创 比较比较C++中的static_cast、dynamic_cast、reinterpret_cast类型转换方式
类型static_castdynamic_castreinterpret_cast特点没有运行时类型检查来保证转换的安全性dynamic_cast运算符可以在执行期决定真正的类型reinterpret_cast是C++里的强制类型转换符。用法static_cast ( expression )①用于类层次结构中基类(父类)和派生
2013-12-03 15:05:14
597
原创 Virtual 析构函数
在使用子类初始化基类的指针后,试图该基类指针删除子类的对象(即子类析构函数),若基类的析构函数未声明为Virtual,那么delete基类指针后只调用基类的析构函数而并没有调用子类的析构函数,因此往往将基类的析构函数声明为virtual
2013-08-09 15:04:01
495
原创 什么时候会调用“拷贝构造函数”
1) 一个对象作为函数参数,以值传递的方式传入函数体;void print(string str)2) 一个对象作为函数返回值,以值传递的方式从函数返回;string print(string str){return str;}3) 一个对象用于给另外一个对象进行初始化(常称为复制初始化);string a("123");string b(a);1.string str1("12
2013-05-15 17:04:12
737
原创 云里雾里的重载,覆盖和隐藏
重载、覆盖和隐藏的区别:1.重载发生在同一个类中,函数名相同;覆盖和隐藏发生在有继承关系的两个类中。2.覆盖和隐藏的区别:(1)如果派生类的函数与基类的函数同名,但是参数不同。此时,不论有无virtual关键字,基类的函数将被隐藏(注意别与重载混淆)。(2)如果派生类的函数与基类的函数同名,并且参数也相同,但是基类函数没有virtual关键字。此时,基类的函数被隐藏(注意别
2013-05-14 10:14:27
490
原创 当输入3时输出:1+2,当输入15时输出:1+2+3+4+5;4+5+6;7+8
当输入3时输出:1+2当输入15时输出:1+2+3+4+5;4+5+6;7+8int SeriatePositiveInt(int intPositiveInt, char* result){ assert(NULL != result); int position = 0; for (int i=1; i { for(int t=i+1; t
2013-05-14 09:36:09
1288
原创 比较vector和list的排序算法
#include #include #include #include #include class aaa{public: aaa(int a, int b, int c):a(a),b(b),c(c){}; bool operator { if (a == m.a)
2013-05-08 09:32:12
958
转载 牛X的程序员
【程序员的自尊】当然你也不能对一个程序员说:你的代码有bug。他的第一反应是:1,你的环境有问题吧;2,*你会用吗。如果你委婉地说:你这个程序和预期的有点不一致,你看看是不是我的使用方法有问题。他本能地会想:操,是不是出bug了!【程序员跟产品经理一起看电视】程序员跟产品经理一起看电视。每个节目看到一半程序员就换台,看到一半就换台,几次之后产品经理终于忍无可忍的咆哮:老子刚看出点意思你
2013-05-07 18:42:11
513
原创 易错
char c1[] = {"asdhdjjkdkk"};char c2[] = {"12345"};下面输出分别是多少? (1) cout 输出:12345jjkdkk (2)cout输出:12345
2013-04-15 11:57:28
460
原创 读写文件
FILE *fp1,*fp2; fp1 = fopen("D:\\1.txt", "r"); fp2 = fopen("D:\\2.txt", "w"); if ( NULL == fp2) { cout return 0; } while (!feof(fp1)) { char ch[100]; fputs(fgets(ch, 10
2013-04-15 11:29:45
537
原创 比较下列输出
char s1[] = {"abc"};char s2[] = {'a', 'b', 'c'};分别计算下列值nLen1,nLen2,nSize1,nSize2:int nLen1 = strlen(s1);int nSize1 = sizeof(s1);int nLen2 = strlen(s2);int nSize2 = sizeof(s2);-----------
2013-04-15 11:12:51
488
原创 快排
//快排//将数据分块template int partition(T a[],int low,int high){ int temp = a[low]; while(low { while((low temp)) { high--;
2013-04-12 17:20:21
447
原创 排序算法
(1)优化版冒泡排序char* strSort(char *c){ assert(NULL != c); char *temp = c; int len = strlen(c)-1; while (len--) { c = temp; bool bSwa
2013-04-12 15:11:10
723
原创 内存对齐方式
一、对齐原因内存对齐(3张)大部分的参考资料都是如是说的:1、平台原因(移植原因):不是所有的硬件平台都能访问任意地址上的任意数据的;某些硬件平台只能在某些地址处取某些特定类型的数据,否则抛出硬件异常。2、性能原因:数据结构(尤其是栈)应该尽可能地在自然边界上对齐。原因在于,为了访问未对齐的内存,处理器需要作两次内存访问;而对齐的内存访问仅需要一次访问。二、对齐
2013-04-12 11:21:32
738
原创 字符串操作
1.是否存在字串的实现bool IsExist(char *source, char *dest){ assert((NULL != source) && (NULL != dest)); if (strlen(source) { return false; } while (strlen(source
2013-03-20 16:58:51
568
原创 遍历文件夹获取文件名
void ParserDirectory(char* strDirName){ CFileFind tempFind; charstrTempFileFind[MAX_PATH]; sprintf(strTempFileFind,"%s\\*.*", strDirName); BOOLIsFinded = te
2013-01-30 09:37:48
626
原创 wenti
void Release() throw() { ATLASSERT( nRefs != 0 ); if( _AtlInterlockedDecrement( &nRefs ) { pStringMgr->Free( this ); } }PowerLite.exe 中的 0x008911d2 处最可能的异常: 0xC0000005: 读取位置 0xf
2012-12-29 16:22:52
703
原创 double float类型判断无效值
在数据处理中,经常会对数据进行判断,看是否异常。有时候数据会很大或者很小,或者负数,这些都可以进行判断。但是当数据出现了1.#QNAN这样的无效值情况时,经常会失去判断,导致最后数据处理出错。有两个函数可以用来判断(头文件为#include"float.h")int _isnan(double);int _finite(float);如果传入的数据是无效值,则返回非零值,如
2012-12-10 22:49:20
1256
原创 C/C++中的日期和时间 time_t与struct tm变换
分享到一键分享QQ空间新浪微博百度搜藏人人网腾讯微博百度相册开心网腾讯朋友百度贴吧豆瓣网搜狐微博百度新首页QQ收藏和讯微博更多...百度分享-摘要:本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时、时间的获取、时间的计算和显示格式等方面进行了阐述。本文还通过大量的实例向你展示了time.h头文件
2012-12-07 22:56:41
606
原创 VC控件DateTimePicker使用方法及其相关
2012优快云博客之星评选正式上线 【免费】解读海外市场营销奥秘 优快云博客频道推出TAG功能 获取当前的日期、时间并格式化输出框1,框2,框3:Static Text控件,修改IDm_strDate:关联框1,CString数据类型(Value类别)m_strTime:关联框2,CString数据类型(Value类别)m_strDat
2012-12-06 16:09:22
813
原创 CTime转CString的常用说明
CTime time=CTime::GetCurrentTime();CString date = time.Format("%Y-%m-%d %H:%M:%S %W-%A");1) 结果为:2006-10-13 17:23:47 41-Friday2) 格式符号说明%a —— 星期(缩写英文),如Fri;%A —— 星期(全写英文),如Friday%b —
2012-12-06 16:01:06
537
原创 BOOL和bool的区别
一、 1、类型不同 BOOL为int型 bool为布尔型 2、长度不同 bool只有一个字节 BOOL长度视实际环境来定,一般可认为是4个字节 3、取值不同 bool取值false和true,是0和1的区别 BOOL取值FALSE和TRUE,是0和非0的区别 二: bool是标准C++数据类型,可取值true和false。单独占一个字节, 如果数个b
2012-11-29 20:45:41
345
原创 CString/string/char*/char[]/int/float相互转化
利用MFC进行编程时,我们从对话框中利用GetWindowText得到的字符串是CString类型,CString是属于MFC的类。而一些标准C/C++库函数是不能直接对CString类型进行操作的,所以我们经常遇到将CString类型转化char*等等其他数据类型的情况。这里总结备忘于此!首先要明确,标准C中是不存在string类型的,string是标准C++扩充字符串操作的一个类。但是我们
2012-11-17 13:34:17
435
原创 CString,string,char*的转换及综合比较
CString,int,string,char*之间的转换string 转 CString CString.format("%s", string.c_str());char 转 CString CString.format("%s", char*);char 转 string string s(char *);string 转 char * char *p = s
2012-11-17 10:51:18
334
原创 C++常用库函数atoi,itoa,strcpy,strcmp的实现
1.//整数转换成字符串itoa函数的实现 02.#include "stdafx.h" 03.#include 04.using namespace std; 05.void itoaTest(int num,char str[] ) 06.{ 07. int sign = num,i = 0,j = 0; 08. char
2012-11-16 22:24:05
478
转载 vc 中改变listctrl每一行的高度
在listctrl所在的对话框中,添加WM_MEASUREITEM的响应函数,并在其中加入下列代码if (nIDCtl == IDC_LIST(listctrl所对应的ID)) { lpMeasureItemStruct->itemHeight =100(listctrl每一行的高度 ); } 还需要在对话框中修改CListCon
2012-11-15 23:43:59
954
转载 在ListCtrl中添加控件(edit)
我们有时候可能想让ListCtrl中的每一个cell(n行,m列)可编辑,或者是想让ListCtrl中的某个cell通过下拉菜单来选择某个范围内的值。这样的需求还是很容易满足的,实现起来也比较简单,在源码网站也可以找到很多的代码,其实实际上就是在当前激活的地方创建一个edit或者combox来实现的。 下面举个简单的例子:可编辑的ListCtrl 从CListCtrl
2012-11-15 23:38:59
950
原创 VC++ combo box控件的使用
1.你在编辑状态下点那个控件的向下的三角形,就出冒出来一个可以调高度的东东。将高度调高,否则在执行时会不能显示下拉选项。 2.为combo box添加选项,在编辑状态下选combo box控件的属性,选Data标签,在编辑框中添加选项,按Ctrl-Enter来添加下一个选项。 3.为combo box添加变量combo box有两个变量,CComboBox类变量和CString变量。
2012-11-14 16:03:00
488
原创 List容器用法操作实例
//* list容器测试//////////////////////////////////////////////////////////////////////////#include "stdafx.h"#include #include using namespace std;typedef listint> LISTINT;int _tmain
2012-11-13 23:46:13
386
原创 C++map的基本操作和使用
1、map简介map是一类关联式容器。它的特点是增加和删除节点对迭代器的影响很小,除了那个操作节点,对其他的节点都没有什么影响。对于迭代器来说,可以修改实值,而不能修改key。2、map的功能自动建立Key - value的对应。key 和 value可以是任意你需要的类型。根据key值快速查找记录,查找的复杂度基本是Log(N),如果有1000个记录,最多查找10次,
2012-11-13 22:41:27
414
原创 动态创建控件
CButton *pButton = new CButton; //一定要New CButton,否则程序会运行出错 pButton->Create("New Button", WS_CHILD|BS_DEFPUSHBUTTON, CRect(0, 0, 100, 50), this, 123); pButton->ShowWindow(SW_SHOW); 或者是如
2012-11-08 15:54:13
275
转载 C++xml文件操作 CMarkup学习方法说明
1、初始化Load 导入一个XML文件到CMarkup的对象中,并对它进行解析。类似C#的Load。SetDoc 从字符串中导入XML数据,并对它解析。类似C#的LoadXml。2、输出Save 将XML数据写入文件中。类似C#的Save。GetDoc 将整个XML数据文档作为字符串返回。3、改变当前位置FindElem 定位到下一个元素,可能和一个标签名或路径
2012-11-07 20:53:39
385
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人