QTL or STL

声明:本文由risent翻译自http://blog.codeimproved.net/2009/12/qtl-or-stl/ ,由于水平所限,任何翻译错误欢迎留言指教。
首先,讲一小段历史:当我开始用Qt来工作的的时候我有STL/Boost的背景,同时已经习惯使用STL容器和字符串。我工作的第一个Qt项目是移植一个大规模的C++系统到Linux上来,项目的方法是使用:Qt严格的局限于UI,同时STL,Boost和其他的库用在所有的事情中。
在那个时候,我甚至不知道这里还有一个QTL,同时我在任何地方漂亮的使用std::(w)string。经过从事了更多的Qt项目,我现在在任何地方使用QTL同时对这两个库拥都有了广泛的经验。我的结论是在这个比较中这里没有明显的获胜者,同时这个选择将是十分复杂的依赖于项目的类型,转换其中的一个库到另外一个往往会一起一些微妙的麻烦。
Containers
STL和Qt在容器上有着不同的哲学:
STL

容器是非常参数化和追求最快的速度的
对每个容器都有性能保证
每一个实现都能够使用适合的copy-on-write
自由,泛型函数是首选的成员函数
有多个容器的实现,就像有多个标准库的实现一样
..同时这些实现不是二进制兼容的,但是他们必须服从 C++标准.这包括接口和性能保证
每个实现都是自由任意的去做优化,只要尊重标准
提供正则迭代器

Posted in: C/C++, Qt by risent No Comments ,

Qt/Embedded于Qt/X11的区别

  Qt/Embedded 以原始 Qt 为基础,   并做了许多出色的调整以适用于嵌入式环境。            Qt/Embedded通过 Qt API 与 Linux I/O 设施直接交互,成为嵌入式 Linux 端口。同 Qt/X11 相比,Qt/Embedded很省内存,   因为它不需要一个 X 服务器或是 Xlib 库,   它在底层撅弃了 X lib,     采用 framebuffer 帧  (缓冲)作为底层图形接口。   同时,将外部输入设备抽象为 keyboard 和 mouse 输入事件。   Qt/Embedde的应用程序可以直接写内核缓冲帧,这避免开发者使用繁琐的 Xlib/Server 系统。

Posted in: Qt by risent No Comments