• CSE207 객체지향 강좌 및 C++ 관련, 누구나 묻고 답하는 게시판 입니다.
  • CSE207 수강생이 아니여도 편안하게 질문하세요.
  • 첨부화일은 이미지 화일 혹은 zip 화일로 업로드 하기를 권합니다.

제목객프 Lab08 응용문제 3 질문입니다.2019-10-11 21:53
작성자
첨부파일응용문제3.jpg (284.5KB)

안녕하세요.

객체지향프로그래밍 배성호 교수님 월수반 13시 수업 수강생 2015104128 최윤성입니다.

Lab08 실행하다 모르겠는 부분이 생겨 질문드립니다.

응용문제 3번 실행과정 중 막혔습니다!

(제가 작성한 코드는 밑에 복붙해 두었고, 캡쳐화면 또한 첨부했습니다.)

 

Reverse()함수를 만들었고,

함수는 for 반복문을 이용해서

제일 뒤 인덱스부터 시작하여

하나씩 복사해서 맨뒤에 붙힌 후 그 인덱스를 지우는 식으로 작성하였습니다.

 

이렇게 했을 때 바뀐 벡터를 다시 main 함수에 돌려보내기 위해선 포인터를 사용해야한다고 생각했습니다. 근데 & *를 이용해서 열심히 코드를 고쳐보아도 안되서 질문드렸습니다…ㅠㅠㅠ

벡터에서는 어떻게 포인터를 사용해야하는지 이해를 제대로 못했습니다.

 

어디를 어떻게 고쳐야 컴파일이 되는지..

그리고 다른 유용한 방식??에 대해 설명해주시면 그 방식도 해보도록 하겠습니다!

감사합니다.

 

제가 작성한 소스코드는

/////////////////////////////////////////////////////////////////////////////////

# include <iostream>

# include <vector>

using namespace std;

 

void reverse(vector<int> v);

 

int main()

{

           vector<int> vec(10);

           for (int i = 1; i <= vec.size(); i++)

           {

                      vec[i - 1] = i;

           }

          

           cout << "기본 Vector : " << endl;

           for (int i : vec)

                      cout << i;

           reverse(vec);

           cout << "함수 실행 후 Vector : " << endl;

           for (int i : vec)

                      cout << i;

           return 0;

}

 

void reverse(vector<int> v)

{

           for (int i = v.size()-1; i >= 0; i--)

           {

                      v.push_back(v[i]);

                      v.erase(v.begin + i);

           }

} 

댓글
이전lab8 응용문제 4번2019-10-12
다음랩8 응용문제4번 질문있습니다.2019-10-09