
C++ 算法
灰灰2006
这个作者很懒,什么都没留下…
展开
-
将字符串中的值转换成数字
// changeNum.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include #include bool GetNum(char* pStr_, double* pValue_) { size_t _nLong = strlen(pStr_); if (!_nLo原创 2008-10-30 12:45:00 · 563 阅读 · 0 评论 -
关于循环的写法问题
这种写法禁用!GetSize()会执行多次!for (int _i = 0; _i 可写成:for (int _i = 0, _nSize = m_arrayToolName.GetSize(); _i 或for (int _i = m_arrayToolName.GetSize() - 1; _i >= 0; _i--) 另外,如果变量为复杂对象,如CS转载 2008-12-26 12:17:00 · 536 阅读 · 0 评论 -
消息映射函数接口错误,导致release版崩溃!
响应通过PostThreadMessage函数发出的自定义消息的MESSAGE_HANDLE是:ON_THREAD_MESSAGE 比如,有自定义消息:#define WM_SET_NCREADY (WM_USER + 0x451)通过下面函数发送消息:PostThreadMessage(WM_SET_NCREADY, 0, 0);MESSAGE_HANDLE是转载 2008-12-26 12:40:00 · 747 阅读 · 0 评论 -
答案: exercise for string functions in c run-time library
下面是参考答案: 以下问题,请把答案手工写在纸上,考察的内容是c run-time library,请不要使用其他库和接口。要求:a) 每个人独立完成,b) 可以参考书和电子文档,c) 明天9:00之前完成答题纸交给牟凤林。 1 在下面的代码中,要求复制一个内容一样的字符串,使用什么函数? 在空格处填上函数名称。 char* _ps转载 2008-12-26 13:34:00 · 633 阅读 · 0 评论 -
exercise for printf functions in c run-time library
printf函数族功能强大,语法简洁,速度快,也容易掌握。所以,与c++流风格的输出相比,更加受到程序员的青睐,在各种API上都可以看到它们的踪迹,因此,掌握printf函数族是非常重要的。 1 回答问题(有些可能比较难,尽所知道的回答。我们今后会专题讲解):A) 列举你知道的printf族函数。B) printf函数可以传递可变个参数,其他函数可以吗?尽你转载 2008-12-26 13:38:00 · 765 阅读 · 0 评论 -
小心使用memcpy函数
前几天我写的代码中错用了memcpy函数,作个总结,以免大家犯同样的错误。错误使用时的环境模拟:基类:CBaseClass CBase{public: double m_nF; virtual void Func(void) = 0;};派生类:CDeriveA、CDeriveBclass CDeriveA : public转载 2008-12-26 11:35:00 · 1184 阅读 · 0 评论 -
exercise for memory-allocation functions in c run-time library
以下问题,请把答案手工写在纸上,考察的内容是c run-time library,请不要使用其他库和接口。要求:a) 每个人独立完成,b) 可以参考书和电子文档,c) 明天9:00之前完成答题纸交给牟凤林。 1 说明calloc, malloc, realloc的区别。2 _alloca函数分配的内存需要用free释放吗?为什么?3转载 2008-12-26 13:37:00 · 532 阅读 · 0 评论 -
编程典型代码错误举例:关于数组的下标使用
众所周知,数组的访问需要使用下标。但是,在C和C++语言里,下标是从0开始计数的,这一点与我们常规的思考方式是有所区别的。 对于一个程序员来说,这一点必须时刻牢牢地记在心里,否则就会犯错误。(尤其是在下标的概念和计数的概念不清,有所混淆的时候) 例如,目前在我们的代码中就有这样一个错误。 该错误导致了在手动界面 直接输入指令时第一条指令永远不能从历史指令中出现。 请大家思考,应该如何转载 2008-12-26 11:40:00 · 650 阅读 · 0 评论 -
今晚的练习
(1) 继续熟悉c runtime library中的string函数。 (2) 一块内存,其起始地址为p,内容为连续存储的若干长度不等的ascii-z字符串,最后一个串是空串。例如:abc/0xyz/0mn/0/0。要求写个函数,接口如下: void f(char* p) 目的是把这些字符打印出来,每行一个字符串。如:对于示例,要求结果为:转载 2008-12-26 13:35:00 · 492 阅读 · 0 评论 -
下面是我犯的一个错误,与大家共享教训
下面是我犯的一个错误,与大家共享教训: MFC的文件类Cfile没有提供通写(WriteThrough)功能,所以就重载了CFile,目的是重新实现基类虚函数Open,派生类CwriteThroughFile,定义如下: class _NCLIB_EXP CWriteThroughFile : public CFile{public:// Construct转载 2008-12-26 12:15:00 · 691 阅读 · 2 评论 -
小技巧为Windows XP标题栏“瘦瘦身”
小技巧为Windows XP标题栏“瘦瘦身”[来 源] pconline [作 者] - [发表时间] 2005-11-10 14:02:01 用过Windows XP系统的用户都知道,Windows XP有专用的窗口主题,很具特色。可是,Windows XP样式的窗口主题在默认的情况下,其标题栏都比较宽,尤其是显示器的分辨率为800×600的时候,用IE浏览器或资源管理器时,其转载 2008-12-26 12:08:00 · 593 阅读 · 0 评论 -
建议:所有的sprintf 和 _stprintf 改为 _sntprintf
sprintf函数没有超界检查,当提供的缓冲区长度低于要求的长度时,会导致堆栈或者其他的内存区域被破坏,从而导致一项不到的效果。尤其是当以%f打印很大的浮点数时,一般不管缓冲区多大,肯定会出界。转载 2008-12-26 12:07:00 · 1691 阅读 · 0 评论 -
A new SDK function: ReplaceFile
发现windows 2000/xp提供了一个新的函数ReplaceFile ReplaceFileThe ReplaceFile function replaces one file with another file, with the option of creating a backup copy of the original file. The replacement fi转载 2008-12-26 12:41:00 · 701 阅读 · 0 评论 -
exercise for string functions in c run-time library
在原来的基础上改进了一下:====================== 以下问题,请把答案手工写在纸上,考察的内容是c run-time library,请不要使用其他库和接口。要求:a) 每个人独立完成,b) 可以参考书和电子文档,c) 明天9:00之前完成答题纸交给牟凤林。 1 在下面的代码中,要求复制一个内容一样的字符串,使用什么函数? 在空转载 2008-12-26 13:32:00 · 602 阅读 · 0 评论 -
exercise for data conversion functions in c run-time library
以下问题,请把答案手工写在纸上,考察的内容是c run-time library,请不要使用其他库和接口。要求:a) 每个人独立完成,b) 可以参考书和电子文档,c) 明天9:00之前完成答题纸交给牟凤林。 1 什么库函数把一个字符串转换成整数?2 若字符串表示的整数超出整数最大值,例如:”9999999999999999999”,怎么办?转载 2008-12-26 13:37:00 · 602 阅读 · 0 评论 -
代码改进:关于循环代码的效率提高与bug预防
1、尽量不要在for循环中使用GetSize()函数不好的代码:for (int _i = 0; _i GetSize(); _i++){ ……} 理由:该代码会导致两个问题:(1)、循环次数可能会与预期的不同,例如:for (int _i = 0; _i GetSize(); _i++){ ……转载 2008-12-26 11:22:00 · 621 阅读 · 0 评论 -
代码改进一则
下面的代码片断写的累赘,你看出问题了吗? _b = _pNcParam->m_bUseDefaultSpeed; if (_b) { if (IDYES != AfxMessageBox(_GETCS(s_szSTOPUSEDEFAULTSPEED), MB_YESNO | MB_ICONQUESTIO转载 2008-12-26 11:28:00 · 471 阅读 · 0 评论 -
代码错误一则!
这是有问题的代码:CFilePosIndicator::CFilePosIndicator(){ m_nLowLimit = 0; m_nHighLimit = 100; SetFullRange(); m_nCurPos = -1; // initial invalid value转载 2008-12-26 11:43:00 · 647 阅读 · 2 评论 -
编程注意事项:关于有符号数和无符号数混用的危险性!!!
DWORD _b = 2; int _a = -1; if (_a { AfxMessageBox(…); //请问:此处会弹出对话框吗?} 答案:不会!在进行类型转换时,优先转为无符号数,而负数转换后显然比所有正数都大,结果比转载 2008-12-26 12:00:00 · 964 阅读 · 0 评论 -
关于memset初始化结构被滥用的问题
(参见函数bool CPageFormCtrl::LoadTheme() m_pPageData = new PAGEDATA[m_nNumofPages]; //memset(m_pPageData, 0, m_nNumofPages * sizeof(PAGEDATA)); 注意:由于PAGEDATA使用了std::vector,所以转载 2008-12-26 13:39:00 · 828 阅读 · 2 评论