C++ STL之Deque

的关键在于其内部的实现,存储管理机制。

deque的内存是分段连续的,复杂的迭代器维持连续的假象。虽然可以像访问vector和数组一样用 [ ] 访问每一个元素,但花费的代价比较大。

(假设deque中的元素为int),deque用一个vector保存一组int**,每个int**指向一个int*,int*就是数组的起始地址。

所以deque的实质就是,vector中的每个元素指向一个数组,数组中元素就是deque的元素。

deque能像vector一样访问元素,功劳在itearator身上。

iterator包含了current,first,last,node四个成员
current指当前元素,first指此数组的第一个元素,last指此数组的最后一个元素,node指vector中指向此数组的int**。

若deque中某数组空了,可以将其内存释放。

排序效率低,先拷贝到vector,排序后再拷贝回来。

你可能感兴趣的:(stl,C++,c++,deque,stl)