首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

怎样对QVector进行添加和删除操作,该怎么处理

2012-05-24 
怎样对QVector进行添加和删除操作我定义了一个QVector,里边存放的是结构体。我在用erase进行删除一个结构体

怎样对QVector进行添加和删除操作
我定义了一个QVector,里边存放的是结构体。我在用erase进行删除一个结构体时,达不到想要的效果。比如,容器中存的是1,2,3,4,5. 我删除了2之后,就变为了1,3,4,4,5. 而我想要的结果是1,3,4,5.

我在进行添加操作的时候,使用push_back,为什么每次插入的不是最后一个位置。

纠结啊。。。在线等。。。

[解决办法]
把 I<projectss.size()改成i!=projectss.size()
如果SproPath太长的话也许不会进行完全的比对
projectss.size()-1不会改变projectss的大小,
第二次删除的时候会重复设置同一个值
[解决办法]
迭代器删除的问题
[解决办法]
QVector 这个是啥东东没用过
如果是跟vector一样功能的话,估计就是如下:
for (QVector<START_PROJECT_SET>::iterator iter = projectss.begin();iter != projectss.end();)
{
if(iter->sProjectPath == sProPath)//进行路径匹配
{
projectss.erase(iter);//删除该行
}
else
{
iter++;
}
}
[解决办法]
我用 QVector<QString> stringVector; 测试了一下 没什么问题啊!

void qtTestCheckSum::delQvector(QString deldata)
{
for (int i = 0; i < stringVector.size(); i++)
{
if(stringVector[i] == deldata)//进行路径匹配
{
stringVector.erase(stringVector.begin()+i);//删除该行
//stringVector.resize(stringVector.size()-1);//设置大小
}
}
}

我 跟踪 调试了一下 能正常删除啊!

热点排行