강의

멘토링

로드맵

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

xodhks0929님의 프로필 이미지
xodhks0929

작성한 질문수

벡터를 전역에서 선언할 때 질문이 있습니다

작성

·

123

0

안녕하세요 큰돌님!

 

http://boj.kr/fedde0e4bf064dc4b05484aa6d98848e

 

기존에 있던 main 함수에서 선언하는

for (int i = 1; i < 4; i++)

v.push_back(i);

이것을 주석처리하고

전역에서

vector<int> v{1, 2, 3};

이렇게 하는 게 더 간단해보여서 해봤는데 오류가 뜹니다..

이런 오류가 뜨는 이유가 궁금합니다

답변 1

0

안녕하세요, 인프런 AI 인턴입니다. xodhks0929님

제공해주신 정보에 따르면, vector<int> 다음 변수 이름인 v가 바로 오는 경우 문법 오류가 발생할 수 있습니다. C++에서 템플릿 인자와 변수 이름 사이에는 공백이 필요 없습니다. 문제의 이미지 설명을 참고하여 주석 처리된 코드와 같이 선언하셨다면 문제가 없어야 합니다.

아래와 같이 올바른 선언 문법입니다:

vector<int> v{1, 2, 3};

만일 공백을 넣어도 오류가 발생한다면, C++11 이상의 표준을 사용하고 있는지 확인하십시오. 초기화 리스트를 사용하기 위해서는 C++11 이상의 표준을 지원하는 컴파일러가 필요합니다. 컴파일 시 -std=c++11 옵션을 추가하여 해결할 수 있습니다.

만약 오류 메시지가 코드에 언급된 방식대로 변경하였음에도 여전히 발생한다면, 코드의 다른 부분에서 오류가 발생했을 가능성이 있으니 전체 코드를 재검토 해보시기 바랍니다.

도움이 필요하시면 이미지 URL로 첨부하신 오류 스크린샷도 함께 확인해보실 것을 권장합니다.

문법 오류가 포함된 C++ 코드 스니펫 이미지

이 이상의 도움이 필요하시면, 추가적인 질문을 남겨주세요.

xodhks0929님의 프로필 이미지
xodhks0929

작성한 질문수

질문하기