pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

STL 還是 Qt 容器?

STL or Qt containers?(STL 還是 Qt 容器?)
本文介紹了STL 還是 Qt 容器?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

使用 Qt 容器(QMapQVector 等)與其等效的 STL 相比有哪些優缺點?

What are the pros and cons of using Qt containers (QMap, QVector, etc.) over their STL equivalent?

我可以看到一個喜歡 Qt 的原因:

I can see one reason to prefer Qt:

  • Qt 容器可以傳遞到 Qt 的其他部分.例如,它們可用于填充 QVariantQSettings(但有一些限制,只有 QListQMap/QHash 其鍵是字符串被接受).
  • Qt containers can be passed along to other parts of Qt. For example, they can be used to populate a QVariant and then a QSettings (with some limitation though, only QList and QMap/QHash whose keys are strings are accepted).

還有嗎?

編輯:假設應用程序已經依賴于 Qt.

Edit: Assuming the application already relies on Qt.

推薦答案

我開始時只使用 std::(w)string 和 STL 容器并轉換為/從 Qt 等效項,但是我已經切換到 QString 并且我發現我越來越多地使用 Qt 的容器.

I started by using std::(w)string and the STL containers exclusively and converting to/from the Qt equivalents, but I have already switched to QString and I find that I'm using Qt's containers more and more.

當談到字符串時,QString 提供了比 std::basic_string 更完整的功能,而且它是完全 Unicode 感知.它還提供了一個 高效的 COW 實施,這是我非常依賴的.

When it comes to strings, QString offers much more complete functionality compared to std::basic_string and it is completely Unicode aware. It also offers an efficient COW implementation, which I've come to rely on heavily.

Qt 的容器:

  • 提供與 QString 相同的 COW 實現,這在使用 Qt 的 foreach 宏時非常有用(進行復制)以及使用元類型或信號和槽時.
  • 可以使用 STL 風格的迭代器或 Java 風格的迭代器
  • 可以使用 QDataStream
  • 流式傳輸
  • 在 Qt 的 API 中被廣泛使用
  • 在各種操作系統上都有穩定的實現.STL 實現必須遵守 C++ 標準,但否則可以隨心所欲(參見 std::string COW 爭議).一些 STL 實現特別是不好.
  • 提供哈希值,除非使用 TR1 否則無法使用
  • offer the same COW implementation as in QString, which is extremely useful when it comes to using Qt's foreach macro (which does a copy) and when using meta-types or signals and slots.
  • can use STL-style iterators or Java-style iterators
  • are streamable with QDataStream
  • are used extensively in Qt's API
  • have a stable implementation across operating systems. A STL implementation must obey the C++ standard, but is otherwise free to do as it pleases (see the std::string COW controversy). Some STL implementations are especially bad.
  • provide hashes, which are not available unless you use TR1

QTL 與 STL 有不同的哲學,這是總結得很好 作者:J. Blanchette:雖然 STL 的容器針對原始速度進行了優化,但 Qt 的容器類經過精心設計,以提供便利、最少的內存使用和最少的代碼擴展."
上面的鏈接提供了有關 QTL 實現和使用了哪些優化的更多詳細信息.

The QTL has a different philosophy from the STL, which is well summarized by J. Blanchette: "Whereas STL's containers are optimized for raw speed, Qt's container classes have been carefully designed to provide convenience, minimal memory usage, and minimal code expansion."
The above link provides more details about the implementation of the QTL and what optimizations are used.

這篇關于STL 還是 Qt 容器?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

How can I read and manipulate CSV file data in C++?(如何在 C++ 中讀取和操作 CSV 文件數據?)
In C++ why can#39;t I write a for() loop like this: for( int i = 1, double i2 = 0; (在 C++ 中,為什么我不能像這樣編寫 for() 循環: for( int i = 1, double i2 = 0;)
How does OpenMP handle nested loops?(OpenMP 如何處理嵌套循環?)
Reusing thread in loop c++(在循環 C++ 中重用線程)
Precise thread sleep needed. Max 1ms error(需要精確的線程睡眠.最大 1ms 誤差)
Is there ever a need for a quot;do {...} while ( )quot; loop?(是否需要“do {...} while ()?環形?)
主站蜘蛛池模板: sfp光模块,高速万兆光模块工厂-性价比更高的光纤模块制造商-武汉恒泰通 | 污水处理设备维修_污水处理工程改造_机械格栅_过滤设备_气浮设备_刮吸泥机_污泥浓缩罐_污水处理设备_污水处理工程-北京龙泉新禹科技有限公司 | 成都思迪机电技术研究所-四川成都思迪编码器 | 磁力抛光研磨机_超声波清洗机厂家_去毛刺设备-中锐达数控 | 大通天成企业资质代办_承装修试电力设施许可证_增值电信业务经营许可证_无人机运营合格证_广播电视节目制作许可证 | 开云(中国)Kaiyun·官方网站-登录入口 | 专业甜品培训学校_广东糖水培训_奶茶培训_特色小吃培训_广州烘趣甜品培训机构 | 氢氧化钾厂家直销批发-济南金昊化工有限公司 | 西安标准厂房_陕西工业厂房_西咸新区独栋厂房_长信科技产业园官方网站 | 特材真空腔体_哈氏合金/镍基合金/纯镍腔体-无锡国德机械制造有限公司 | 蓝牙音频分析仪-多功能-四通道-八通道音频分析仪-东莞市奥普新音频技术有限公司 | 全自动真空上料机_粉末真空上料机_气动真空上料机-南京奥威环保科技设备有限公司 | 自恢复保险丝_贴片保险丝_力特保险丝_Littelfuse_可恢复保险丝供应商-秦晋电子 | 青岛空压机,青岛空压机维修/保养,青岛空压机销售/出租公司,青岛空压机厂家电话 | 根系分析仪,大米外观品质检测仪,考种仪,藻类鉴定计数仪,叶面积仪,菌落计数仪,抑菌圈测量仪,抗生素效价测定仪,植物表型仪,冠层分析仪-杭州万深检测仪器网 | 引领中高档酒店加盟_含舍·美素酒店品牌官网 | 艺术涂料_进口艺术涂料_艺术涂料加盟_艺术涂料十大品牌 -英国蒙太奇艺术涂料 | 高效复合碳源-多核碳源生产厂家-污水处理反硝化菌种一长隆科技库巴鲁 | 砂磨机_立式纳米砂磨机_实验室砂磨机-广州儒佳化工设备厂家 | 潜水搅拌机-双曲面搅拌机-潜水推进器|奥伯尔环保 | 东莞ERP软件_广州云ERP_中山ERP_台湾工厂erp系统-广东顺景软件科技有限公司 | 不锈钢酒柜|恒温酒柜|酒柜定制|酒窖定制-上海啸瑞实业有限公司 | 塑胶跑道_学校塑胶跑道_塑胶球场_运动场材料厂家_中国塑胶跑道十大生产厂家_混合型塑胶跑道_透气型塑胶跑道-广东绿晨体育设施有限公司 | 神超官网_焊接圆锯片_高速钢锯片_硬质合金锯片_浙江神超锯业制造有限公司 | 房在线-免费房产管理系统软件-二手房中介房屋房源管理系统软件 | CCC验厂-家用电器|服务器CCC认证咨询-奥测世纪| 冰晶石|碱性嫩黄闪蒸干燥机-有机垃圾烘干设备-草酸钙盘式干燥机-常州市宝康干燥 | 上海物流公司,上海货运公司,上海物流专线-优骐物流公司 | 【电子厂招聘_普工招工网_工厂招聘信息平台】-工立方打工网 | 袋式过滤器,自清洗过滤器,保安过滤器,篮式过滤器,气体过滤器,全自动过滤器,反冲洗过滤器,管道过滤器,无锡驰业环保科技有限公司 | 武汉不干胶印刷_标签设计印刷_不干胶标签印刷厂 - 武汉不干胶标签印刷厂家 | 大通天成企业资质代办_承装修试电力设施许可证_增值电信业务经营许可证_无人机运营合格证_广播电视节目制作许可证 | IHDW_TOSOKU_NEMICON_EHDW系列电子手轮,HC1系列电子手轮-上海莆林电子设备有限公司 | 石家庄装修设计_室内家装设计_别墅装饰装修公司-石家庄金舍装饰官网 | 橡胶接头|可曲挠橡胶接头|橡胶软接头安装使用教程-上海松夏官方网站 | 打孔器,打孔钳厂家【温州新星德牌五金工具】 | 电缆故障测试仪_电缆故障定位仪_探测仪_检测仪器_陕西意联电气厂家 | 工业风机_环保空调_冷风机_工厂车间厂房通风降温设备旺成服务平台 | 聚合甘油__盐城市飞龙油脂有限公司| 耐磨焊丝,堆焊焊丝,耐磨药芯焊丝,碳化钨焊丝-北京耐默公司 | 佛山商标注册_商标注册代理|专利注册申请_商标注册公司_鸿邦知识产权 |