STL 还是 Qt 容器?

2024-03-05

使用 Qt 容器的优点和缺点是什么(QMap, QVector等)超过其 STL 等效项?

我可以看到更喜欢 Qt 的一个原因:

  • Qt 容器可以传递到 Qt 的其他部分。例如,它们可用于填充QVariant然后一个QSettings(但有一些限制,仅QList and QMap/QHash接受其键是字符串的)。

还有其他的吗?

Edit:假设应用程序已经依赖于 Qt。


这是一个很难回答的问题。它确实可以归结为哲学/主观论证。

话虽如此...

我推荐这个规则“在罗马做到入乡随俗”

这意味着如果您在 Qt 领域,请像 Qt'ians 一样编码。这不仅仅是出于可读性/一致性的考虑。考虑一下,如果将所有内容存储在 stl 容器中,然后必须将所有数据传递给 Qt 函数,会发生什么情况。您真的想管理一堆将内容复制到 Qt 容器中/从 Qt 容器中复制出来的代码吗?您的代码已经严重依赖于 Qt,因此您并没有通过使用 stl 容器使其变得更加“标准”。如果每次你想用它做任何有用的事情时,你都必须将它复制到相应的 Qt 容器中,那么容器还有什么意义呢?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

STL 还是 Qt 容器? 的相关文章

  • c# - 显示小数点到小数点后 6 位 [重复]

    这个问题在这里已经有答案了 可能的重复 具有 N 个小数位的 Double ToString https stackoverflow com questions 3059759 double tostring with n number o
  • 动态选择和更新 LINQ 结果集中的列值

    我有一个场景 其中存在 LINQ 结果集 我使用了以下查询 var stockDetails from d in db BloodBanks where d bbUserName Session username ToString sele
  • 将 void *user_data 转换为对象

    我该如何投射void something到标准 C 中的对象 具体来说我想投void userdata to std map
  • 计算复杂数组的abs()值的最快方法

    我想计算 C 或 C 中复杂数组元素的绝对值 最简单的方法是 for int i 0 i lt N i b i cabs a i 但对于大向量来说 速度会很慢 有没有办法加快速度 例如使用并行化 语言可以是 C 或 C 鉴于所有循环迭代都是
  • NHibernate IQueryable 集合作为 root 的属性

    我有一个根对象 它有一个集合属性 例如 I have a Shelf object that has Books Now public class Shelf public ICollection
  • 增量决策树 C++ 实现

    有谁知道决策树分类器的增量实现吗 这样 当您将新实例添加到训练集中时 它可以根据现有决策树分类器以低计算量并尽可能快地生成最佳决策树分类器 换句话说 我有一个最优决策树分类器集A 其中命名为T 1 现在我想添加实例X to set A并找到
  • 从套接字读取 C HTTP

    我想知道如何判断是否已从套接字接收到所有数据 这是一个简单的网络代理 现在我正在处理请求部分 所以发送的内容应该以 r n r n 结尾 我不知道请求会持续多久 我在这里读过一些帖子 说我应该检查读取函数是否返回 0 但其他人说0只在客户端
  • 如何删除实体框架6中的多对多关系

    如果将项目连接为多对多关系 则从数据库中删除项目时会出现问题 我的数据库看起来像 Project lt JobInProject gt Job ProjectID JobInProjectID JobID ProjectID JobID 主
  • 如何在Azure功能中添加razor视图文件?

    我正在创建一个应用程序 它是 azure 函数项目 我想在该项目中使用 Razor 视图 我应该在 azure 函数中使用任何模板引擎吗 得益于一些方面的进步剃刀之光项目 https github com toddams RazorLigh
  • ASP.NET中如何访问除wwwroot以外的位置

    我可以使用访问服务器的物理位置Server MapPath 这给了我内部的物理路径wwwroot文件夹 我想将一些数据保存到同一服务器的另一个驱动器中D 驾驶 我想我无法获取以下位置的物理位置D 驾驶使用Server MapPath因为它位
  • 修改正在运行的可执行文件的资源内容

    All 我将应用程序设置存储在资源中 当我的程序首次加载时 我使用 WinAPI 读取指定的资源 然后我解析检索到的字节数据 这对我来说完美无缺 现在假设用户更改了我的应用程序中的设置 他 她检查复选框控件 我想将更新的设置保存到我的资源中
  • 为什么这个单独的定义会导致错误?

    挑战 我有这段代码无法编译 你能找出问题所在吗 有一次让我很头疼 header namespace values extern std string address extern int port cpp file std string v
  • C++:LPWSTR 在 cout 中打印为地址

    我有一个类型变量LPTSTR 我打印到std cout with lt lt 在 ANSI 系统中 不知道它是在哪里确定的 它工作得很好 它打印了字符串 现在 在 Unicode 系统中 我得到的是十六进制地址而不是字符串 那么 为什么LP
  • 我可以对(非成员)函数使用部分模板特化吗?

    我试图在 非成员 函数上使用部分模板专业化 但我在语法上遇到了问题 我在 StackOverflow 中搜索了其他部分模板专业化问题 但这些问题涉及类或成员函数模板的部分专业化 作为起点 我有 struct RGBA RGBA uint8
  • 如何在 Visual Studio 2010 Express 中引用 system.drawing?

    我对此有点陌生 我的印象是要绘制我创建的矩形 我需要使用 system drawing graphics 问题是 我收到错误 命名空间 System 中不存在类型或命名空间名称 drawing 您是否缺少程序集引用 当我右键单击解决方案资源
  • 如何创建和使用类箭头运算符? [复制]

    这个问题在这里已经有答案了 因此 在到处研究之后 我似乎找不到如何创建类箭头运算符 即 class Someclass operator gt 我只需要知道如何使用它并正确使用它 它的输入是什么 它返回什么 我如何正确地声明 原型化它 运算
  • 将多个 Blob 输入传递到 QueueTrigger Azure 函数的最佳方法

    问题 触发后 生成 3 个 XML 文件 完成后将它们通过 ftp 传输到站点 目前的方法 我有一个 HTTP 触发器 Azure 函数 运行时将构造 3 个 XML 文件并将它们保存到 Azure 存储 Blob 容器中 由于有多个输出
  • char[length]初始化并处理

    我定义了一个字符数组 char d 6 如果我在以下方面有误 请纠正我 此时没有为变量分配内存d 现在我要初始化它 d aaaaa 这种初始化之后 就不需要释放内存了 它将自动完成 我怎么知道是否char 被初始化了吗 我正在寻找类似的模式
  • “显式”关键字对返回值优化 (RVO) 有何影响?

    以下代码工作得很好 显示 RVO struct A A int cout lt lt A A n constructor A const A cout lt lt A A const A n copy constructor A foo r
  • DataGridView 捕获用户行选择

    我在处理选择时遇到问题DataGridView 我的网格视图包含一个金额列 表单上有一个文本框 应显示所选网格视图行的总数 因此 我需要在用户选择 取消选择 gridview 行时捕获事件并相应地计算 添加 减去 金额 我找到了两种方法 使

随机推荐

  • 多个轴的单个图例[重复]

    这个问题在这里已经有答案了 我有以下示例代码 fig1 suptitle Test ax1 fig1 add subplot 221 ax1 plot x y1 color b label aVal ax2 ax1 twinx ax2 pl
  • Spring Security Kerberos 与基本的链接

    我有一个关于 Spring Security 的快速问题 我正在寻找一种解决方案 将安全性集成到我们的应用程序中 该应用程序提供 SSO 但也提供基本的 HTTP 我们系统的自动化部分之一只能支持基本身份验证 而我们却被困在其中 目前 我们
  • Android udp 多播与以太网

    大家好 我正在开发一个使用 udp 多播的项目 我有一台服务器通过以太网电缆发送多播 udp 数据包 我花了几周的时间阅读有关 android 上多播的所有帖子 但我仍然无法在我的 Asus Transformer Tablet 4 1 上
  • 如何在 Angular 中添加可重用的模式对话框?

    我是 Angular 新手并尝试实施这个解决方案 http adamalbrecht com 2013 12 12 creating a simple modal dialog directive in angular js 进入我的项目
  • 将 xml 响应映射到类?

    我不知道如何将某些 XML 表示为 C 类 有人对如何正确映射此 xml 有任何建议吗 下面是我的尝试
  • MySQL 根据条件求和多个列值

    我有以下架构 两个表 APPS ID bigint USERID Bigint USAGE START TIME datetime 1 12 2013 05 03 04 42 55 2 12 2013 05 12 06 22 45 3 12
  • C# 使用参数从内存加载 .NET 程序集

    我想知道如何从带有参数的字节数组启动 NET 程序集 我不想先将其写入磁盘 谁能给我一个关于如何做到这一点的例子吗 谢谢 这应该可以解决问题 Assembly program Assembly Load ASSEMBLY BYTES str
  • 使用 ActiveRecord 在表上自连接

    我有一个名为的 ActiveRecordName其中包含各种名称Languages class Name lt ActiveRecord Base belongs to language class Language lt ActiveRe
  • 构造函数中的数组设置意味着稍后会失败

    我遇到了一个问题 我的代码在尝试使用列表的 size 函数时出现段错误 根据 stackoverflow 的建议 我构建了一个发生段错误的最小情况 在下面的调用 inventory size 中 这是 include
  • 在 JSP 文件中导入类

    我编写了一些 Java Servlet 代码 现在尝试将其转换为 JSP 我在我正在使用的单独文件中编写了一个类 但我不知道如何让 JSP 文件识别该类 我猜这与进口有关 我给全班同学一个包裹 package mypackagename 名
  • 如何将 NSArray 存储到 plist 或数据库中?

    我有这个应用程序 当我点击某个按钮时 它必须存储信息 事实是 当我点击这个按钮时 我需要在本地存储这些数据 这样我就可以在其他视图中将其加载 并将其显示为数据 我正在考虑一些 plis 或数据库 问题是我无法得到一个想法或一些好的东西 我传
  • 如何在jackson json反序列化中跳过包装对象

    我正在尝试使用 Jackson 反序列化以下字符串 roomName u8ec29p0j7q2m9f broadcastPresenceRoles broadcastPresenceRole moderator participant vi
  • vb.net 2008 文本框最大长度

    vb net 2008 中文本框中最多可以输入多少个字符 假设 Windows 窗体 文本框 MaxLength http msdn microsoft com en us library system windows controls t
  • 使用 apply 和不同的函数参数来计算每个元素

    假设我有一个矩阵 垫子 mat lt matrix 1 5 nrow 10 ncol 3 byrow TRUE 我有某种想要应用的函数 在本例中按列应用 getRMSE lt function true est sqrt mean true
  • Django 多重注释减慢查询速度

    我一直在调试django debug toolbar 如果我在查询中使用多个注释 那么 Django 会花费大量时间来获取查询结果 class Project First models Model project first results
  • 返回其元素(列)全部匹配参考向量的行索引

    使用以下代码 c lt NULL for a in 1 4 b lt seq from a to a 5 c lt rbind c b c lt rbind c c rm a b 结果在这个矩阵中 gt c 1 2 3 4 5 6 b 1
  • 检测应用程序是否是从 Android Market 下载的

    我有一个 Android 库 可以将数据上传到测试服务器和生产服务器 我希望使用此库的开发人员在开发时使用测试服务器 并在从 Android Market 下载应用程序时使用生产服务器 应用程序是否有可能知道它来自哪里 市场或非市场 我想人
  • 终端 vim 未加载 .zshrc

    我的终端 vim 配置未加载 zshrc Zsh是环境登录shell 对于这种情况 正确的配置是什么 以下是我已经采取并已删除的一些措施 set shell zsh 使用 zsh 作为 shell 但不获取 rc 源 set shellcm
  • servicestack AppHostHttpListenerBase handlerpath 参数不起作用?

    不确定我是否在这里遗漏了一些东西 我在单元测试中使用 AppHostHttpListenerBase 来测试服务 并在其构造函数中为 handlerPath 参数传递 api 我在 hello Name 注册了一个服务 并且使用的是 3 9
  • STL 还是 Qt 容器?

    使用 Qt 容器的优点和缺点是什么 QMap QVector等 超过其 STL 等效项 我可以看到更喜欢 Qt 的一个原因 Qt 容器可以传递到 Qt 的其他部分 例如 它们可用于填充QVariant然后一个QSettings 但有一些限制