2차 백터의 X와 Y축 값을 반전하여 저장하고 싶습니다.
좀더 자세히 말하자면
vector<vector<String> >VectorYX 에
VectorYX[0][1] = "01";
VectorYX[0][2] = "02";
VectorYX[0][3] = "03";
VectorYX[0][4] = "04";
VectorYX[1][1] = "11";
VectorYX[1][2] = "12";
VectorYX[1][3] = "13";
VectorYX[1][4] = "14";
위와 같은 값이 들어있다 했을때
//void VectorYXReverse(vector<vector<String> > *VectorYX)
VectorYXReverse(&VectorYX);
위와 같은 함수를 지나면
VectorYX[1][0] = "01";
VectorYX[2][0] = "02";
VectorYX[3][0] = "03";
VectorYX[4][0] = "04";
VectorYX[1][1] = "11";
VectorYX[2][1] = "12";
VectorYX[3][1] = "13";
VectorYX[4][1] = "14";
위와 같이 VectorYX이 반전되는 함수를 짜고 싶습니다.
그런대 좀처럼 깔끔하고 좋은 함수가 안만들어 지내요
수학적으로 이해하고 있는대 좀처럼 코드로 짜기가....
일단 지금까지 짠 함수는 다음과 같습니다.
void CustomFile::VectorYXReverse(vector<vector<String> > *VectorYX) {
vector<vector<String> >BufVectorYX;
BufVectorYX.clear();
BufVectorYX = *VectorYX;
vector<vector<String> >BufVectorXY;
BufVectorXY.clear();
vector<String>BufVectorX;
BufVectorX.clear();
String BufStr;
// 반전을 하기 위해선 우선 push_back을 통해서 메모리 공간을 반전하여 확보하며 할당한다.
for (int j = 0, i = 0; BufVectorYX[j].size() != NULL; j++) {
for (i = 0; i < BufVectorYX[j].size(); i++) {
BufStr = BufVectorYX[j][i];
BufVectorX.push_back(BufStr);
BufVectorXY.push_back(BufVectorX);
}
BufVectorX.clear();
}
*VectorYX = BufVectorXY;
}