0

我想用添加、重命名和执行其他操作时始终在树节点下自动排序的项目构建一棵树。std::set 似乎是我的数据容器的不错选择。然而,Qt 树似乎更喜欢向量或 QList(指针向量),因为树项是通过它们的索引或行号来访问、插入或删除的。我正在使用类似 std::distance 的函数来计算集合中某个项目的索引。但我认为它很慢(未经测试)。让 Qt 树模型与 std::set 一起工作的任何好方法,或者我可能需要为我的数据使用向量,或者开发一个新容器来做到这一点?非常感谢!

找到答案:使用boost::container::flat_set。谢谢。

4

2 回答 2

2

出于此目的,QSet 不是一个好主意。除了不提供基于索引的访问之外,它是完全无序的,即绝对不能保证遍历的顺序。没有任何明智的方法可以用于 Qt 项目模型。最好只使用 QList 并确保自己的值是唯一的。

于 2013-01-02T17:14:43.073 回答
0

您可能应该使用 QTreeView 和子类 QAbstractItemModel 这样您可以使用您想要的任何数据源

看到这个问题:为树视图创建 Qt 模型

于 2013-01-02T15:49:17.260 回答