Qt6STL-STL分析
Posted 鱼酱2333
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt6STL-STL分析相关的知识,希望对你有一定的参考价值。
Qt STL
QMap —— std::map 两者都是[红黑树算法],但不能互转,因为数据成员实现方式不同。std::map的数据成员用的是std::pair,而QMap用的是自己封装的Node,当然还是[键值]对
QList —— stl没有对应类。QList其实不是链表,是优化过的vector,官方的形容是array list,据说它更类似于boost::ptr_deque,不过我没用过后者。它的存储方式是分配连续的node,每个node的数据成员不大于一个指针大小,所以对于int、char等基础类型,它是直接存储,对于Class、Struct等类型,它是存储对象指针。
QBitArray —— std::bitset 功能相同,实现相似,都是构造一个array,用位操作来存取数据。不同的是,QBitArray数据的基础元素是[unsigned char],而bitset是unsigned long。所以QBitArray可能在空间消耗上会省一点。至于效率上么……得让懂编译的人来解答了,我是觉得,32位cpu上,char的位操作和int的位操作应该是一样的开销。
QSet —— std::set 二者不能互转,实现方式有本质的区别。QSet
以上是关于Qt6STL-STL分析的主要内容,如果未能解决你的问题,请参考以下文章
方差分析ANOVA单因素方差分析协变量方差分析ANCOVA重复测量方差分析双因素方差分析( two-way ANOVA)多元方差分析MANOVA多元协方差分析MANCOVA