vector类通过for_each(begin,end,func)可以实现对每一个元素进行操作
allocator类是一种强大的内存管理类,它实现了将分配内存和构造实体对象的分离,不同于new在分配一段内存时,需要同时构造对象。而allocator则只分配内存。真正的创建对象则是在成员函数construted传入位置和元素的类型创建。当不需要用时,则调用destroy销毁对象。
list有自带的函数merge可以实现对链表的合并和排序,splice则是类似于merge,但是splice可以实现部分合并。同时值得注意的是,两个函数操作的另外一个链表会因为这些结点被摘去,而导致长度减少。merge后则为0。
list自带的unique函数在使用时,需要已排序的list,因为unique只会检查左右两边的结点是否相同
vector类支持通过[]寻找元素,比较适用于取值的情况,而list类则需要遍历寻找元素,故而比较适合多插入少查询的情况,list特别适合在序列中部插入的情况,因为相比较于vector和deque,在中部插入都需要移动其他元素。而与vector较为接近的deque则可以实现头部插入,头部弹出等操作,适合于不断进行头尾操作的情况。
!任何插入或删除动作都会使所有指向deque元素的pointers、references、iteartors失效。
网友评论