【问题标题】:Why <Qtalgorithm> don't have better support for STL algorithms like QtContainers supports STL containers?为什么 <Qtalgorithm> 没有像 QtContainers 支持 STL 容器那样更好地支持 STL 算法?
【发布时间】:2022-12-14 06:38:40
【问题描述】:

我正在做一个 Qt c++ 项目,我使用过 Qt STL 容器,比如 QVector、QList、 但是使用 &lt;QtAlgoritm&gt; 的方法比 STL c++ &lt;algorithm&gt; 的方法少。

我现在使用 QtContainers 和 QtIteraters 以及 standerd STL &lt;algorithm&gt;'s。这是正确的方法吗?

【问题讨论】:

    标签: qt stl


    【解决方案1】:

    是的,这很好而且是故意的。 QtAlgorithms 不会尝试复制 STL 算法库中已有的内容,并且在最新的 Qt 版本中已弃用许多重复的内容(请参阅https://doc.qt.io/qt-5/qtalgorithms-obsolete.html)。但要注意使用算法时 Qt 容器不必要分离的问题。在算法中使用它之前,最好使用 const 迭代器或将容器转换为 const 引用,以避免不必要的分离(即深层复制)或尽可能使用 std::as_const 或 qAsConst。这同样适用于 C++11 中的范围for循环。使用像 Clazy 这样的静态分析器来指示此类潜在问题。

    顺便提一句。这个视频绝对值得一看https://www.youtube.com/watch?v=uZ68dX1-sVc

    这是另一个你可能会发现有用的库https://github.com/KDAB/kdalgorithms

    【讨论】:

      猜你喜欢
      • 2016-05-06
      • 1970-01-01
      • 2010-09-14
      • 2011-11-12
      • 2012-11-16
      • 1970-01-01
      • 1970-01-01
      • 2011-01-23
      • 2012-06-11
      相关资源
      最近更新 更多