【发布时间】:2015-10-22 17:49:01
【问题描述】:
所以我有一个具有 id 数据成员的类,我在 QList<QSharedPointer<MyClass>> 中使用它,但我不确定如何检查该 QList 中是否存在现有 id。我将如何做到这一点,就像QList::contains 需要QSharedPointer<MyClass>& 而不是MyClass*
我应该只使用以 id 作为键的 QHash 吗?
【问题讨论】:
-
选择使用什么容器 - 这是您的决定。要选择使用哪个容器,您应该了解容器提供的每个操作的算法复杂度。
-
如果您的软件运行到您获得原始 MyClass* 的情况,而在其他情况下它被 QSharedPointer 持有,那么您的设计肯定有问题。 QSharedPointer 的整体思想是将对象始终作为 QSharedPointer 传递。否则,您的代码中可能会出现无效指针
-
@KamilKlimek 抱歉,我的意思是,如果我不使用 QSharedPointer,我只会编写一个运算符重载,然后应该可以使用
contains -
你不能为 poitner 类型覆盖 operator==
标签: c++ qt qlist qsharedpointer