Так что я вставляю кучу значений в вектор (я пробовал карту с теми же результатами), и я продолжаю получать ошибку сегментации на моем втором векторе, который является VectorMin , Я пробовал раскомментировать это, и если я работаю только с VectorMax, все отлично работает.C++ - ошибка сегментации при вставке в карту или вектор
По какой-то причине, если я попытаюсь манипулировать обоими векторами, я получу ошибку сегментации. Если я раскомментирую один, программа загрузится правильно.
Я использую файл 3.5mb с 1000 строками и 362 значениями для каждой строки.
std::vector<float> vectorMax, vectorMin;
void Parser::isMaxMinVector(float value, int index){
//if the index of the vector is not yet used
if (index >= vectorMax.size()){
vectorMax.push_back(value);
}
if(index >= vectorMin.size()){
vectorMin.push_back(value);
}
//if new vector is larger, then overwrite it
//if(vectorMax[index] > value) vectorMax[index] = value;
//if(vectorMin[index] < value) vectorMin[index] = value;
}
void Parser::parseLine(char* line){
std::vector<float> vectors;
char* point;
char* tk1 = strtok(line, ",");
char* tk2 = strtok(NULL, ",");
int i=0;
if(tk1 == NULL || tk2 == NULL) return;
float x = strtof(tk1, NULL);
float y = strtof(tk2, NULL);
XYPair pair = XYPair(x, y);
isMaxXY(x,y);
while(point=strtok(NULL, ",")){
//convert the token to float
float f_point = strtof(point, NULL);
//push the float to the vector
vectors.push_back(f_point);
isMaxMinVector(f_point, i);
i++;
}
}
Код, который вы показали, не будет скомпилирован, потому что класс std :: vector не имеет счетчика членов-членов. –
Извините, я не отменил код достаточно далеко. Это мой код, который компилируется просто отлично. –