QList子-从QObject派生的结构或自定义类
QList children - struct or custom classes derived from QObject?
我目前正在塞班平台上开发Qt应用程序。应用程序有一个sqlite数据库,初始数据是从txt文件填充的。
我正在从json格式的数据中实现在线更新。所以我想在我的db更新类中创建通用函数,该类/结构的QList
和更新的db。QList
将填充来自txt或json的对象。
我已经准备好了解析,只是考虑在性能方面什么会更好:
- 创建c++结构体并传递它们(作为只包含简单数据的对象),包装在
QList
- 创建自定义类派生自
QObject
和传递它们作为指针在QList
,然后删除一切与qDeleteAll
这取决于你的类是携带行为还是只携带状态。
-
它们携带行为。
那么,一个多态类是有序的,是的。它是否需要从
QObject
继承是另一个问题。如果你需要QObject
的服务(自省、信号/插槽、事件处理),只从继承。否则,不。至于
qDeleteAll()
:我不会去那里。代替裸指针,使用智能指针,例如QSharedPointer
。它们跟踪对其有效负载的引用数量,当refcount降为零时删除它。在这种情况下,不要使用
QList
,而是使用QVector
等更高效的容器。 -
它们只携带状态。
那么,一个"哑"的
struct
就足够了。在这种情况下,不要使用QList
作为容器,而是使用更有效的容器,如QVector
(不要忘记充分利用reserve()
方法)。
一般来说,对于T
类型(其中sizeof(T)>sizeof(void*)
和非buildin/非qt类型),尽量避免使用QList<T>
,因为QList
的性能会降低。
相关文章:
- 通过 NIF 从C++返回自定义数据结构
- C++ 通过函数传递自定义结构
- 在C++中循环访问自定义结构列表的小问题
- 自定义数据结构的优点是什么?
- 如何在Qt中使用QDataStream将自定义结构保存/加载到二进制文件中?
- 为什么在类或结构中传递自定义比较器函数?
- 如何在自定义 LLVM 传递之间正确传递数据结构
- 结构向量中自定义结构函数的内存使用
- 类型转换自定义结构
- 使用结构绑定更改自定义结构的值
- 信号槽自定义结构问题
- 如何将unordered_set与自定义结构一起使用?
- 为什么C++在自定义结构向量时会出现 ostream 重载问题?
- 通过自定义结构和链接列表类中的C 中的哈希表
- 从自定义结构数组中提取数据
- 将 OpenGL VBO 与自定义类/数据结构一起使用
- 无法使用自定义结构的属性
- 通过引用将自定义结构的向量传递给 boost::compute 闭包或函数
- 自定义链表创建 RtlValidateHeap 错误,其结构具有链表
- 如何为C++类和结构自定义 STAssertEquals 输出