为什么vector没有pop_front()函数?
deque/list都有这个函数!
[解决办法]
应该是鉴于效率问题吧。不同的容器各有各的特点和优势,不能说这个有这个函数那个也得有。
[解决办法]
vector类似于数组,而list与deque类似于链表。
数组自然不会有pop_front(),vector作用就是随机存取,删除操作并不是它的长处,所以没有那个函数。
list与deque既然是基于链表实现的,pop_front的复杂度为O(1).
主要还是因为这几种容器的应用场景不同导致的。
[解决办法]
删除操作只需要移动一下vector的_Last指针吧或者使用erase函数
[解决办法]
deque/list的push_front使用堆来操作的,用的是指针,插入方便,效率高
vector用下标访问即可,在频繁的插入和删除 效率比较低
[解决办法]
这就是vector不能取代list/deque的原因.stl中容器各有所长,也必有其缩短。
[解决办法]