나무 숲
매개변수로서의 스택 사용 본문
예는 스택으로 들었는데 큐도 마찬가지입니다.
전달인자로 스택을 넣었는데 이상해요! <<저의 상황이었습니다.
두 코드의 결과값입니다. 차이가 보이시나요..?
반면 오른쪽 그림에서는 스택을 비웠기에, 원소가 출력되지 않는 모습입니다.
makeStackEmpty(stack<int> &s)
바로 참조자&를 통해서 해당 함수 내에서 매개변수로 전달된 값이 변하느냐, 변하지 않느냐의 차이입니다.
그리고 또한 중요한 점.. &을 사용할 때엔 변수.함수 형태입니다.
포인터 *를 사용할 때엔 변수->함수(또는 데이터) 입니다.
자세히 설명할 기회가 있다면 그때 다시한번 하는걸로..
제가 printStack 함수에서 참조자를 사용하지 않은 이유는 정말 말 그대로 내용을 참조만 해서 스택 내 원소들을 확인하고 싶었기 때문입니다.
이처럼 스택 내 원소 확인 시에는 참조자를 사용하지 않고 스택을 비우는 함수 등을 작성할 시에는 참조자를 사용해야 합니다.
스택은.. 배열이 아니라는 것...!!!을 잊으면 안된다고!!!!! 저를 다시금 채찍질합니다..
추가적으로+)
함수 내부에서 스택의 원소를 수정(삭제/수정)하고싶지 않다면 const를 사용하시고
void makeStackEmpty(const stack<자료형> &변수명)
함수 내부에서 스택의 원소를 수정(삭제/수정)하고싶다면
void makeStackEmpty(stack<자료형> &변수명)
const를 사용하지 않습니다.
728x90
반응형
'Career' 카테고리의 다른 글
프로그래밍 오류의 종류 - 컴파일 에러/런타임 에러/링킹 에러/논리 에러/파스 에러 (1) | 2017.04.15 |
---|---|
[C++] cin 에서 쓸만한 것들 ( istream 라이브러리) (0) | 2017.04.13 |
직업/ 국가정보원 (국정원) NIS (0) | 2017.04.09 |
폰 노이만 구조 vs 하버드 구조 vs 수정된 하버드 구조 (0) | 2017.03.30 |
MIT App Inventor 소개 (0) | 2017.03.28 |
Comments