erase实现:先将要删除的元素后面的内容复制到前面,然后再删除要删除的元素,相当于将元素提前。
//清除[first,last)中的所有元素
iterator erase(iterator first,iterator last){
iterator i = copy(last,finish,first); //将区间[last,finish)内容复制到区间[first,first+finish-last)
destroy(i,finish) ;//释放[i,finish)区间内存
finish = finish-(last-finish);
return first; //迭代器位置没变,变得是内容
}
//清除某个位置上的元素
iterator erase(iterator position){
if(position + 1 != end()){
copy(position+1,finish,position);
}
--finish;
destroy(finish);
return position;
}