C++
soulxu
Linux developer, Open-source developer, and IBMer
展开
-
C++ —— STL容器分析(2)
今天在看STL的时候,发现标准容器当中存储的对象必须是可构造拷贝的!为什么呢,从上一张对STL容器的性能分析中,意外的发现了这个原因! STL中的容器都是自动扩展的,而且可以提前分配出空间,当使用时在将对象填入其中。但会发现C++分配内存是使用的new,而不是malloc(),在C中可以用malloc分配出一个空间,然后用指针指向它,当时用的时候在填入数据。在c++中则不推荐使用mallo原创 2008-01-31 15:45:00 · 719 阅读 · 0 评论 -
关于Qt4 QDirIterator遇到中文死循环的问题
今天跟小宁宁哥讨论个问题,遇到QDirIterator迭代目录死循环。让小宁宁哥痛苦不已。 经过半小时对源码反复折腾无果后,才发现是中文目录的问题。于是检查系统,发现是英文环境的,LC_ALL的值为C。修改LC_ALL=zh_CN.UTF-8后,死循环问题消失了。另我们兴奋不已。如是继续想办法不修改系统环境解决中文问题。 我们可以从程序中指定程序使用的编码。 QL原创 2010-03-06 10:20:00 · 2201 阅读 · 1 评论 -
用C/C++扩展Python
这两天接到一个任务,要求将一个C库封装成python模块,供python使用。以前玩过一阵子python,也没太深入,满足需求就够了。也一直好奇想看看C/C++如何扩展python。 之前也有大致看了下PyQt,PyGtk的实现。他们都使用了另一种描述语言,最后通过自动生成实现。我这个任务到只是封装一个C库,规模不大,永不到那么复杂,直接用python提供的api实现就可以了。 由C/C++写的python模块最终生成为一个.so(Linux平台)文件。在当前目录下就可以import进来了。那先原创 2011-02-15 15:44:00 · 1269 阅读 · 0 评论 -
小记:注意GCC链接中的库依赖,调整链接时库文件的顺序
转自:http://blog.csdn.net/ah__fu/archive/2007/08/01/1721013.aspxGCC在链接过程中,对参数中的库的顺序是有要求的,参数右侧的库会先于左侧的库加载,也就是说参数的解析是从右往左的。 假设库B依赖与库A,则链接的时候要写为: gcc -o bin B A 如果写为: gcc -o bin A B 则在B中引用的A中的内容就会无法链接通过。转载 2011-02-16 11:06:00 · 890 阅读 · 0 评论 -
C++ placement new
<!-- @page { margin: 2cm } P { margin-bottom: 0.21cm } -->这是以前记录下来的,现在发上来。其实这个用的机会不多。知道就可以了。 事实我们都会如何自定义一些new的行为,就是通过运算符重载。以下这个如果没看错的话就应该是stl提供的一些new重载。其实也是运算符重载,只是stl写好一些可能用原创 2011-06-07 09:50:00 · 757 阅读 · 0 评论