인프런 커뮤니티 질문&답변
vector를 struct를 사용하여 출력하려는데,,..
작성
·
539
0
이러한 문제가 발생합니다
44번째 줄에서 print_vec(Fr_vec[1])로 출력하면 안되는 건가요..?
답변 1
1
오류 메세지 그대로 Friend_vec 은 [ ] 연산자를 사용할 수 있도록 정의되어 있지 않기 때문입니다. (구조체나 클래스에서 연산자를 사용할 수 있도록 정의할 수 있는데 이건 챕터 9 가서 배우시게 됩니다.)
Friend_vec 타입인 Fr_vec 는 벡터가 아닌 구조체입니다..!!
근데 마치 배열이나 벡터인 것 처럼 Fr_vec[1] 이렇게 사용하셔서 그런 것입니다.
"구조체 Friend를 main문에서 Fr을 사용하여 불러오는 것처럼" 이라고 말씀하셨는데 정확히는 Friend_vec 이라는 자료형(타입)의 Fr 이라는 인스턴스를 만들었다라고 이해하는게 더 올바를 것 같아요. int a; 는 int 타입의 a 라는 인스턴스, 즉 a 라는 존재를 만드는 거잖아요? 비슷하게 이해해주시면 될 것 같아요.
Friend_vec 타입의 Fr 라는 이름의 구조체의 name_vec 벡터 속성을 불러오고 싶다면
Fr.name_vec 로 접근하시면 됩니다.
Fr.name_vec[3] 이렇게 할 수 있겠습니다.






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