C 11 범위 루프를 사용하여 벡터 반복 및 수정
C 11의 범위 기반 for를 사용하여 벡터를 반복할 때 일반적인 질문이 발생합니다. : 루프 내에서 항목을 제거할 수 있습니까?
제한 사항 범위 기반 For 루프
범위 기반 for 루프는 컨테이너의 각 요소에 한 번만 액세스하도록 설계되었기 때문에 대답은 '아니오'입니다. 컨테이너를 수정하거나, 요소를 제거하거나, 비선형 반복을 수행해야 하는 경우 대신 기존 for 루프를 사용해야 합니다.
기존 루프로 벡터 수정
반복하는 동안 벡터에서 항목을 제거하려면 전통적인 방법을 사용할 수 있습니다. 루프:
for (auto it = inv.begin(); it != inv.end(); ++it) { // Do some stuff if (blah) { it = inv.erase(it); --it; // Decrement iterator to avoid skipping an element } }
기존 루프의 장점
기존 루프는 범위 기반 for 루프보다 더 많은 유연성을 제공합니다.
위 내용은 범위 기반 For 루프를 사용하는 동안 C 벡터에서 요소를 제거할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!