随笔 - 96  文章 - 255  trackbacks - 0
<2015年9月>
303112345
6789101112
13141516171819
20212223242526
27282930123
45678910

E-mail:zbln426@163.com QQ:85132383 长期寻找对战略游戏感兴趣的合作伙伴。

常用链接

留言簿(21)

随笔分类

随笔档案

SDL相关网站

我的个人网页

我的小游戏

资源下载

搜索

  •  

积分与排名

  • 积分 - 477972
  • 排名 - 36

最新评论

阅读排行榜

评论排行榜

语言基础、数据结构与算法
所有基础知识的学习和研究
彻底解密C++宽字符:6、国际化策略(完)      摘要: 硬编码的硬伤——补救——Windows的策略——Linux的策略——跨平台策略——gettext策略——更多  阅读全文
posted @ 2010-06-26 19:55 lf426 阅读(3382) | 评论 (4)  编辑
彻底解密C++宽字符:5、利用fstream转换      摘要: C++的流和本地化策略集——basic_filebuf——利用fstream实现宽窄转换  阅读全文
posted @ 2010-06-26 16:40 lf426 阅读(2977) | 评论 (0)  编辑
彻底解密C++宽字符:4、利用codecvt和use_facet转换      摘要: locale和facet——codecvt——内部编码和外部编码——CodecvtFacet的in()和out()——演示程序源代码——use_facet  阅读全文
posted @ 2010-06-26 13:39 lf426 阅读(8376) | 评论 (2)  编辑
彻底解密C++宽字符:3、利用C运行时库函数转换      摘要: std::locale——mbstowcs()和wcstombs()——宽窄转换函数:string和wstring之间的转换。  阅读全文
posted @ 2010-06-26 11:17 lf426 阅读(2856) | 评论 (1)  编辑
彻底解密C++宽字符:2、Unicode和UTF      摘要: Unicode和UCS——Unicode和UTF——UTF-8和Windows GB2312——UTF-16和UCS-2——UTF-32和UCS-4——BOM  阅读全文
posted @ 2010-06-25 21:51 lf426 阅读(3459) | 评论 (1)  编辑
彻底解密C++宽字符:1、从char到wchar_t      摘要: 从字符到整数——本地化策略集(locale)——C/C++的编译策略——宽字符 wchar_t  阅读全文
posted @ 2010-06-25 14:41 lf426 阅读(20602) | 评论 (6)  编辑
迭代器(iterator)“擦”(erase)出的错误      摘要: 在我们遍历查找对等值的循环中,一开始v.end()指向第10个元素(数值为9)的后面一个位置(不存在的第11个元素的位置)。当迭代器指向第10个元素(数值为9)的时候,v.erase()生效运行;下一轮循环中,迭代器本来应该指向第11个元素的位置,并且等于v.end()并结束循环。但是,因为我们擦掉了vector中的一个元素,v.end()指向的是现在的最后一个元素——第9个元素的后面,也就是第10个元素的位置。这样,迭代器到了11,而判断确是其是否到10,这将永远无法实现,形成了一个逻辑bug,所以系统抛出错误了。  阅读全文
posted @ 2010-06-10 11:03 lf426 阅读(1579) | 评论 (1)  编辑
用对象的成员函数引出线程,还是在线程中创建对象?      摘要: 所以,如果我们设想构造一个类,这个类的对象可以调用包含this的线程,那么这个对象一定不能是局部变量,或者说,我们必须在循环的{}对之前先把这些对象构造出来。或者说,如果我们希望用类来封装线程,那么这些可以调用线程的对象必须是全局的。  阅读全文
posted @ 2010-06-05 21:06 lf426 阅读(744) | 评论 (0)  编辑
在多线程中抛出的异常出错?      摘要: 所以,一个解决方法是,凡是遇到新的线程,必须在新线程中重新写异常处理。不然,就如google代码标准里所说的那样,不使用C++的异常机制。毕竟C++没有定义多线程的标准,所以也就无从说起多线程中异常处理的标准。  阅读全文
posted @ 2010-06-05 20:16 lf426 阅读(2534) | 评论 (2)  编辑
函数指针与成员函数指针      摘要: 因为他们通常调用的是函数指针,但是在C++中,我们通常把函数绑定到了与其数据相关的类中,也就是说,我们在C++中很少用到“单身”的函数,成员函数可以被那些调用函数指针的函数调用吗?  阅读全文
posted @ 2008-04-26 12:39 lf426 阅读(3898) | 评论 (0)  编辑
成员数据的三种形式与栈对象的生命周期      摘要: 结论是:如果成员数据使用(新)对象,则必须定义这个对象所属类的复制构造函数;如果使用的是对象引用或者指针,则一定只能用已经存在并且会在B对象整个生命周期内都存在的A对象来构造这个B对象。  阅读全文
posted @ 2008-04-14 12:36 lf426 阅读(483) | 评论 (0)  编辑
创建一次销毁两次?!复制构造函数的致命错误。      摘要: 所以,结论是,如果A类构造具有堆操作,有可能把A类作为B类的成员数据,B类又有可能通过成员初始化列表构造A对象,请一定别忘记手写复制构造函数。  阅读全文
posted @ 2008-04-14 11:50 lf426 阅读(502) | 评论 (0)  编辑
显式析构函数的陷阱      摘要: 几乎在大部分时候,我们是不需要显式的调用析构函数的。显式的调用析构函数是一件非常危险的事情,因为如果系统会调用析构函数,无论我们自己是否已经调用过,仍然会再次调用。换句话说,我们自己所谓的显式调用析构函数,实际上只是调用了一个成员函数,并没有真正意义上的让对象“析构”。  阅读全文
posted @ 2008-04-12 14:29 lf426 阅读(2419) | 评论 (1)  编辑
SDL入门教程(九):4、int转换为std::string      摘要: 我下面考虑的问题,是用TextSurface反馈鼠标事件的信息。我想到的第一个例子,很自然就是反馈鼠标所在坐标的位置。这里涉及到一个基础的问题,即鼠标位置显然不是用字符串表示的。SDL给我们的反馈信息是int,我们需要用TextSurface将int构建成可以被blit到ScreenSurface上的面,需要做的第一件事情,是将int转换为string。  阅读全文
posted @ 2008-03-26 20:48 lf426 阅读(4209) | 评论 (8)  编辑
从“集合”实例分析修饰函数返回值的const作用      摘要: 发现这个问题,是因为一直以来思考的一个算法——关于“集合”的实现。这个集合就是数学中的集合,与计算机中数列一个最大的不同在于,集合的元素是互异的。因为这两天在熟悉vector,所以觉得用vector实现集合再合适不过了。STL确实是很好很强大的体系,无论是内存管理,还是链表的实现,让我们可以省很多心。其实关于为什么要实现集合,也是因为我在计划实现类似英雄无敌战场计算移动的一系列算法中,很多地方会用到集合的概念,甚至包括并集和差集等等。  阅读全文
posted @ 2008-03-13 13:30 lf426 阅读(859) | 评论 (3)  编辑

Full 语言基础、数据结构与算法 Archive