#include <stdlib.h>
#include <stdio.h>
vector <vector<string> > vector2;
vector<string> vector;
for(int i = 0; i < vector.size();i++)
{
vector2[atoi(vector[i+1].c_str())].push_back(vector[i]);
i++;
}
Я пытаюсь это на Windows, он работает нормально. Но когда я пытаюсь скомпилировать на Ubuntu64-бит
это ошибка сегментации, кто-нибудь просветить?
Из кода, который вы показали, vector[i+1].c_str()
будет читать после конца vector
для последней итерации цикла.
Вы должны выйти из цикла на одну итерацию раньше?
for(int i=0; i<vector.size()-1;i++)
Если это не поможет, вы можете опубликовать более полный пример, демонстрирующий проблему? В настоящее время невозможно сказать, например, vector2
имеет достаточную емкость или vector
Содержимое всегда будет конвертироваться в подходящие индексы.
Других решений пока нет …