有关vector中的erase()
如下代码是在vector容器中装入指针元素:
vector<object*> vec;//object是已经定义好的一个类
object *p;
for (int i=0;i<5;i++)
{
p = new object;
.....//给每个元素加上一些东西,例如标号等
vec.push_back(p);
}
现在,我想使用vec.erase[a,b]来来删除区间的元素,(并没有释放内存的意思),如果我给vec中的每个元素顺序加上不同的标号(暂且用数字来区别:1,2,3,4,5.....),那么,我使用vec.erase(vec.begin(),vec.begin+1)是不是在这个容器中就把vec.begin()的信息消除了?(没有释放内存的意思~)
或者能否这样说,有了这行代码,是不是原来的vec.begin()的数据不能被访问(被清除),但是它所占据的内存仍在当初给vec分配的内存中,而现在的vec.begin()变成了原来的vec.begin()+1?????
vec的长度减少了?
如果我erase()的区间在别的地方呢?