qt QVector push_back无用

时间:2018-06-06 11:45:17

标签: qt qvector

我有一个非常奇怪的问题。在我的项目中,QVector无法使用push_back()来添加值,但是vector可以使用它;像这样:

void Widget::SplitStr(string s, QVector<string> &v, const string c)
{
    string::size_type pos1, pos2;

    pos2 = s.find(c);
    pos1 = 0;

    while(string::npos != pos2)
    {
        v.push_back(s.substr(pos1, (pos2-pos1+c.size()-1)));
        pos1 = pos2 + c.size();
        pos2 = s.find(c, pos1);
    }
    if(pos1 != s.length())
        v.push_back(s.substr(pos1));
}

come form vs IDE

这是一个Qt项目。只有在这个项目中,我才有这个奇怪的问题。如果有人可以帮助我,我会很感激。

非常感谢!

1 个答案:

答案 0 :(得分:0)

您很可能在项目的其他位置有未定义的行为,并且会破坏状态。但是你也没有错误检查:函数在c.empty() == true 时不会终止 - 它将继续添加输入字符串的副本,直到内存不足为止。也许这就是发生的事情。