Vector与deques的差别

    技术2022-05-11  56

    相同之处:                                                                                                                                                                          1. 在中段部分安插、移除元素的速度较慢,因为所有元素都需要移动以腾出或填补空间。                                 2.迭代器属于radom access iterator(随即存取迭代).                                                                                           不同之处                                                                                                                                                                       1.deques两端都能快速的安插和移除元素,而vector却只能在尾部进行操作。这些操作可在分期摊还的常数时间(anortized constant time)内完.                                                                                                                           2.存取元素时,deque内部结构会多一个间接过程,所以元素的存取和迭代器的动作会稍慢一些。      3.deque迭代器需要在不同的区域间跳转,所以必须是特殊的职能型的指针,非一般指针。                               4.对于内存区块有所限制的系统(如PC系统),deque可以含有更多的元素,因为它使用不止一块内存,因此deque的max_size()可能更大。                                                                                                                              5.deque的内存区域在不被使用时会被释放。deque的内存大小是可以缩减的。但到底是不是这样做,依赖于实际的编译环境。


    最新回复(0)