일련의 요소를 반복하려면 연속된 요소 사이에 구분 기호가 필요한 일부 작업을 인쇄하거나 수행하는 작업이 포함되는 경우가 많습니다. 그러나 마지막 요소 뒤에 구분 기호를 추가하는 것은 바람직하지 않을 수 있습니다.
C 스타일 for 루프로 배열을 반복하거나 비파괴 반복자를 사용하는 경우 크기를 알 수 없는 시퀀스의 경우 특수 케이싱을 사용하면 마지막 요소가 추가 구분 기호를 방지할 수 있습니다.
<code class="cpp">for (const auto& item : items) { cout << item; if (std::next(it) != items.cend()) { // Not the last element cout << separator; } }</code>
C 11은 명시적인 특수 케이싱 대신 이를 달성하는 더 깔끔한 방법:
<code class="cpp">const auto separator = "WhatYouWantHere"; const auto* sep = ""; for (const auto& item : items) { std::cout << sep << item; sep = separator; // Only assign when not on the last element }</code>
이 접근 방식에서 포인터 변수 sep는 구분 기호가 아직 인쇄되었는지 여부를 추적합니다. 첫 번째 요소를 만나면 sep는 비어 있으므로 아무것도 인쇄되지 않습니다. 루프가 진행됨에 따라 sep에 구분 기호 값이 할당됩니다. 모든 후속 요소에 대해 구분 기호는 해당 요소 앞에 인쇄됩니다.
위 내용은 반복 루프에서 불필요한 구분자를 피하는 방법: C 11 솔루션?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!