读书人

向量中的erase有关问题

发布时间: 2013-09-28 10:01:20 作者: rapoo

向量中的erase问题

[code=javascript] vector<char *> *m_vKeyName=new vector<char *>;
//CBaseData *sdafgasfsd=new CBaseData(/*vUseKeyName[ii]*/"",
// /*lppszChildData*/NULL,/*nChildCount+1*/0,/*m_nColCount*/0);//多一个标题行信息
for(int gg=0;gg<6;gg++)
{
m_vKeyName->push_back("11");
}
if (m_vKeyName->size()==6)
{
for (int ss=0;ss<6;ss++)
{
m_vKeyName->erase(m_vKeyName->begin()+ss-ss);//移除无效对象
}
}
[/code]

求教,erase到第4次的时候死机,何解?
[解决办法]
引用:
m_vKeyName->erase(m_vKeyName->begin()+(ss-ss));
这样居然没报错,奇怪。。。


这是自己写的?还是别的地方拷贝的?
[解决办法]
vector.erase(iterator First, iterator Second)
删除[First,Second)半开半闭区间的元素,不要再循环中删除,在循环中找到要删除的2个位置就行了.
[解决办法]
http://www.cplusplus.com

读书人网 >C++

热点推荐