• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

vector를 struct를 사용하여 출력하려는데,,..

21.11.21 04:22 작성 조회수 429

0

이러한 문제가 발생합니다

44번째 줄에서 print_vec(Fr_vec[1])로 출력하면 안되는 건가요..?

답변 1

답변을 작성해보세요.

1

안소님의 프로필

안소

2021.11.21

오류 메세지 그대로 Friend_vec 은 [ ] 연산자를 사용할 수 있도록 정의되어 있지 않기 때문입니다. (구조체나 클래스에서 연산자를 사용할 수 있도록 정의할 수 있는데 이건 챕터 9 가서 배우시게 됩니다.)

Friend_vec 타입인 Fr_vec 는 벡터가 아닌 구조체입니다..!!

근데 마치 배열이나 벡터인 것 처럼 Fr_vec[1] 이렇게 사용하셔서 그런 것입니다. 

이준우님의 프로필

이준우

질문자

2021.11.22

그럼 구조체를 사용한 vector을 이용하여 불러오려면 어떻게 해야하나요?

 구조체 Friend를 main문에서 Fr을 사용하여 불러오는 것처럼, vector같은 경우에는 어떤식으로 불러와야 하는지 궁금합니다. 또한, vector로 특정 인덱스만 추출하고 싶다면 어떻게 해야하나요..?

안소님의 프로필

안소

2021.11.22

"구조체 Friend를 main문에서 Fr을 사용하여 불러오는 것처럼" 이라고 말씀하셨는데 정확히는 Friend_vec 이라는 자료형(타입)의 Fr 이라는 인스턴스를 만들었다라고 이해하는게 더 올바를 것 같아요. int a; 는 int 타입의 a 라는 인스턴스, 즉 a 라는 존재를 만드는 거잖아요? 비슷하게 이해해주시면 될 것 같아요.

Friend_vec 타입의 Fr 라는 이름의 구조체의 name_vec 벡터 속성을 불러오고 싶다면 

Fr.name_vec 로 접근하시면 됩니다.

Fr.name_vec[3] 이렇게 할 수 있겠습니다.