1 erase() clear() 比较
iterator erase(iterator pos)
vector: 只析构 destory(), 不释放空间
list : 析构+释放空间, 因为1个 node 断链后, 就无法被找到, 无法在 list 的 Dtor 中统一释放空间
deque : 只析构, 不释放空间
iterator erase(iterator first, iterator last)
vector: 只析构 destory(), 不释放空间
deque : 析构+释放空间
clear()
vector: 全区间 erase(first, last), 不释放空间
list : 析构+释放空间
deque : 析构+释放空间
Dtor
vector: 析构 destory() + 释放空间 deallocate(), 因为 vector 靠3根指针能定位到分配的所有空间
2 list 特殊之处: 1个 node 断链后, 就无法被找到, 所以断链后必须析构并释放空间
1 remove(value): 删除(而不只是移除)值为 value 的所有元素
2 unique() 删除连续且相同的元素中第1个之外的元素
3 transfer(pos, iter1, iter2) 将 [iter1, iter2) 内所有元素移到 pos 之前
4 splice(pos, list& lst) / splice(pos, iter1[, iter2])
lst 必须不同于 *this
将指定区间的元素接合于 pos 之前
5 sort(): 特有