std::vector<std::vector<int>> Algorithm::flipAndInvertImage(vector<vector<int>>& A)
{
vector<vector<int>>::iterator itorArray = A.begin();
for (; itorArray != A.end(); itorArray++)
{
vector<int>::iterator itorFront = (*itorArray).begin();
vector<int>::reverse_iterator itorBack = (*itorArray).rbegin();
int nSize = (*itorArray).size();
bool bOdd = ((nSize % 2) == 1) ? true : false;
int nHalfSize = nSize / 2;
for (int iItem = 0; iItem < nHalfSize; iItem++)
{
int iTemp = *itorFront;
*itorFront = *itorBack;
*itorBack = iTemp;
*itorFront = !(*itorFront);
*itorBack = !(*itorBack);
itorFront++;
itorBack++;
}
if (bOdd)
{
*itorFront = !(*itorFront);
}
}
return A;
}