Segfault от hflip

По какой-то причине, когда я запускаю этот код, у меня возникает ошибка. То, что он делает, читает файл PGM из ввода и переворачивает его по горизонтали.

Вот что я считаю оскорбительным кодом:

for (i = pixels.size()-1; i = 0; i--){ // this loop takes the final value of the original vector and puts it into the first spot in the new hflip vector, and continues onwards
flippy.push_back(pixels[i]);
}

cout << "P2" << endl << numColumns << " " << numRows << endl << "255" << endl;
while (p < pixTotal){
for (int z = 0; z < numRows; z++){
cout << flippy[p] << " ";
}
cout << endl;
p++;

}

0

Решение

Я предполагаю, что вектор pixels представляет каждую строку в вашей матрице. Затем, чтобы перевернуть все значения в векторе, вы можете просто использовать std::reverse_copy как это:

std::vector<uint8_t> flippy;
flippy.resize(pixels.size());
std::reverse_copy(pixels.begin(), pixels.end(), flippy.begin());

Вы должны сделать это для каждого ряда. После этого вы можете вывести каждую перевернутую строку после каждого реверса, чтобы вектор ‘flippy’ представлял только текущую строку в действии.

0

Другие решения

У тебя есть

для (i = пикселов.size () — 1; я = 0; я—)

середина должна быть

я> = 0

не

= 0

1

По вопросам рекламы [email protected]