【问题标题】:std::unique analogue in Qt?Qt 中的 std::unique 类似物?
【发布时间】:2009-10-15 11:45:47
【问题描述】:

我浏览了文档,但没有找到。 有什么想法吗?

【问题讨论】:

    标签: qt sorting stl qt4 unique


    【解决方案1】:

    您应该能够将std::unique 应用于QList 的迭代器。 std::unique 只要求迭代器是前向迭代器(herehere),看来QList 的迭代器满足该要求。

    【讨论】:

    • 嗯,它还需要编译带有 STL 支持的 Qt(目前还不需要)
    【解决方案2】:

    考虑改用QSet(并在需要时使用QSet::toList作为列表)。

    【讨论】:

    • 设置是个好主意。我使用列表的唯一原因是添加项目更容易(并且有成千上万的项目通过呼吸优先搜索收集)。
    • mySet.insert(foo) 对我来说似乎不是特别难。
    【解决方案3】:

    这就是我创建唯一整数列表的方式:

    list=QSet::fromList(list).toList();

    不需要添加 STD,但使用非常大的整数可能不是最好的方法

    【讨论】:

      【解决方案4】:

      现在我有以下内容:

         //filter out duplicates: stl algorithm 'unique' would be useful here
            QList<int> uniqueIDs;
            qStableSort(res);
            foreach(int id, res)
             if ( (uniqueIDs.empty()) 
                      || (uniqueIDs.back() != id))
                  uniqueIDs.push_back(id);
            swap(res, uniqueIDs);
      

      res 是过滤的输入,对此不满意。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-03-28
        • 1970-01-01
        • 1970-01-01
        • 2011-04-16
        • 2013-05-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多