작성
·
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로 첨부하신 오류 스크린샷도 함께 확인해보실 것을 권장합니다.
이 이상의 도움이 필요하시면, 추가적인 질문을 남겨주세요.