QT QVector push_back не может быть полезным - PullRequest
0 голосов
/ 06 июня 2018

У меня очень странный вопрос.В моем проекте QVector не может использовать push_back() для добавления значения, но вектор может использовать его;как это:

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 голосов
/ 06 июня 2018

Скорее всего, у вас есть неопределенное поведение в другом месте вашего проекта, и это портит состояние.Но у вас также нет проверки ошибок: функция не завершается при c.empty() == true - она ​​будет добавлять копии входной строки до тех пор, пока не закончится память.Возможно, так и происходит.

...