У меня есть вектор строк:станд :: строка :: зиЬзЬги бросают зЬй :: out_of_range но аргументы в пределе
vector<string> tokenTotals;
Когда push_back
называется, строка длиной 41 хранятся и я должен работать на каждом элементе моего вектора и получить две подстроки, первый в диапазоне от 0 до 28, а второй в диапазоне от 29 до 36:
for(int i = 0; i < tokenTotals.size(); i++)
{
size_t pos = tokenTotals[i].find(": ");
cout << tokenTotals[i] << endl; // Show all strings - OK
cout << tokenTotals[i].length() << endl; // Lenght: 41
string first = tokenTotals[i].substr(0, 28); // OK
string second = tokenTotals[i].substr(29, 36); // ERROR
cout << first << " * " << second << endl;
}
Но когда я пытаюсь получить вторую подстроку, я получаю следующее сообщение об ошибке :
terminate called after throwing an instance of std::out_of_range.
what():: basic_string::substr
Любая идея о том, что могло случиться?