(原)Qt学习笔记之容器类

       QT库也提供了类似STL的容器类,它们是QList<T> 、QLinkedList<T>、QVector<T>、QStack<T>、QQueue<T>、QSet<T>、QMap<Key, T>、QMultiMap<Key, T>、QHash<Key, T>、QMultiHash<Key, T>,还有两个比较特殊一点的QCache和QContiguousCaChe。

       这些容器类被设计成高效的、安全的和易于使用的,并且是隐式共享、可重入的和线程安全的,提供了两种风格的遍历方式:java风格和stl迭代器风格的。

       对于这些容器类,最先考虑使用的应该是QList<T>,因为实现了一种数组-链表式,所以无论是前置、追加还是中间插入都是非常快的。如果你确切需要链表式存储方式就用QLinkedList<T>,如果你确切需要连续的内存就用QVector<T>,如果需要后进先出就用QStack<T>,需要先进先出就用QQueue<T>。如果是其它映射方式的存储就考虑其它几方式了。

       这些容器类都是可以嵌套使用的,值的注意的一点是,由于继承QObject类的所有Gui类都没有拷贝构造函数和赋值运算符,所以不能直接用容器类存储,但是可以存储指向它们的指针。