인프런 커뮤니티 질문&답변

noahsway님의 프로필 이미지
noahsway

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

교안질문

작성

·

380

·

수정됨

1

안녕하세요 큰돌님 교안 관련 질문사항이 있어 이렇게 글을 남깁니다~

Q1. 포인터를 일반화 했다는게 무슨 뜻인가요?

Q2. 2차원 배열 선언 3가지 방법 중 마지막 방법은 vector<int> v3[10] 이렇게 선언하면서 2차원으로 선언되었다는 건가요?

Q3. 요소에 접근한다는게 참조를 한다는 건가요 탐색을 한다는 건가요?

Q4.랄로구조체 설명시 함수에 매개변수로 가져올 때 Ralo ralo로 가져오는데 Ralo라는 구조체에 ralo라는 변수명을 지어서 가져온 것으로 봐도 될까요?

답변 1

0

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 noah님 ㅎㅎ

Q1. 포인터를 일반화 했다는게 무슨 뜻인가요?

>> 이터레이터는 컨테이너에 저장되어 있는 요소의 주소를 가리키는 개체를 말하며 포인터를 일반화한 것을 말합니다.

이거를 말씀하시는 것이죠? 설명을 하자면 다음과 같습니다.

이터레이터와 포인터의 차이

이터레이터는 어떠한 컨테이너(배열, 맵 등)의 범위 안에서 일부 요소를 가리키며 해당 요소들을 순회할 수 있는 개체입니다. 이는 컨테이너의 개체를 참조하는 것이기 때문에 이 자체를 제거할 수 없습니다. 

반면 포인터는 변수의 메모리 주소를 저장하는 개체이며 포인터는 delete를 통해 포인터를 제거할 수 있습니다. 

이터레이터 = 일반화된 포인터

먼저 일반화(generalization)는 여러 사례들의 공통되는 속성들을 일반적인 개념으로 추상화의 한 형태를 말합니다.

이터레이터는 컨테이너의 구조나 컨테이너 안에 들어가 있는 요소의 타입과는 상관없이 컨테이너에 저장된 데이터를 순회하는 과정을 담당합니다. 즉, 각각의 다른 요소들을 쉽게 탐색할 수 있게 “일반화”한 장치입니다.

 

Q2. 2차원 배열 선언 3가지 방법 중 마지막 방법은 vector<int> v3[10] 이렇게 선언하면서 2차원으로 선언되었다는 건가요?

>> 네 맞습니다.

Q3. 요소에 접근한다는게 참조를 한다는 건가요 탐색을 한다는 건가요?

>> 참조입니다.

Q4.랄로구조체 설명시 함수에 매개변수로 가져올 때 Ralo ralo로 가져오는데 Ralo라는 구조체에 ralo라는 변수명을 지어서 가져온 것으로 봐도 될까요?

>> 네 맞습니다.

또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제가 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.

noahsway님의 프로필 이미지
noahsway

작성한 질문수

질문하기