작성
·
174
0
for(int i = 1; i <= 5; i++){ v.push_back({i, i}); }
for(auto it : v){ cout << it.first << " : " << it.second << '\n'; }
for(pair it : v){ cout << it.first << " : " << it.second << '\n'; }
1.강의교재를 보면 저렇게 3줄의 코드가 나오는데 밑에 답지를 보면 1~5까지 2번만 반복한다고 나와있습니다.3중에서 어떤 2개 코드만 실행이 된것인가요?원래 3줄다 실행이 되어야 하는것 아닌가요?
2.그리고 강의교재 코드를 그대로 복사해서 실행을 해보았는데
hello.cpp:14:28: warning: range-based for loop is a C++11 extension [-Wc++11-extensions]
for (pair<int, int> it : v)
이러한 에러가 발생을 했습니다.. 어떻게 해결해야할까요>??
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
김우진님의 질문에 답변 드리겠습니다.
제시하신 코드 중 첫 번째와 두 번째 ‘for’ 구문은 ‘auto’ 키워드를 사용하여 벡터 ‘v’의 각 요소에 접근하는 범위 기반 ‘for’ 루프입니다.
반면 세 번째 ‘for’ 구문은 ‘pair
답지에서 언급된 ‘1~5까지 2번만 반복’한다는 것은 아마도 첫 번째와 두 번째 루프만을 의미하는 것 같습니다.
하지만 실제로는 세 번째 루프도 실행될 수 있으나, 문제가 되는 부분이 있다면 그에 대한 설명이 학습 자료에서 제공되어야 할 것입니다.
‘hello.cpp:14:28: warning: range-based for loop is a C++11 extension [-Wc++11-extensions]‘라는 경고 메시지는 범위 기반 ‘for’ 루프가 C++11 기능임을 나타내는 것입니다.
이 코드를 컴파일하려면 컴파일러에 C++11 표준을 사용하도록 지시해야 하며, 보통 다음과 같은 컴파일 옵션을 추가합니다.
g++ -std=c++11 hello.cpp -o hello
위 커맨드를 사용하여 C++11 표준으로 코드를 컴파일할 수 있으며, 이렇게 하면 경고 메시지가 나타나지 않아야 합니다.
귀하의 학습에 도움이 되었기를 바랍니다. 추가적인 질문이 있으시면 언제든지 문의해 주세요.