C 관용구를 사용하여 연속 요소 쌍 반복
일반적인 프로그래밍 작업 중 하나는 컬렉션을 반복하고 각 연속 요소 쌍 사이에서 작업을 수행하는 것입니다. 강요. 기본 범위 for 루프는 반복을 처리할 수 있지만 끝에 원치 않는 구분 기호가 발생하는 경우가 많습니다.
다행히도 이 문제를 해결하기 위한 몇 가지 관용적 접근 방식이 있습니다. 한 가지 방법은 추가 포인터를 사용하여 구분 기호 상태를 추적하는 것입니다.
<code class="cpp">const auto separator = "WhatYouWantHere"; const auto* sep = ""; for(const auto& item : items) { std::cout << sep << item; sep = separator; }
이 예에서 sep 포인터는 빈 문자열로 초기화됩니다. 루프가 진행됨에 따라 sep는 최종 요소가 아닌 요소가 발견될 때마다 구분 기호 문자열로 업데이트됩니다. 기본적으로 sep는 첫 번째 요소 앞에 빈 문자열이 되어 선행 구분 기호가 없습니다.
또는 일부 C 라이브러리는 구분 기호 논리를 처리하는 특수 반복기를 제공합니다. 예를 들어 Boost Range 라이브러리에는 연속적인 요소 쌍에 조건자를 적용하고 조건자에 실패한 항목을 필터링하는 데 사용할 수 있는 인접_필터링 함수가 포함되어 있습니다.
<code class="cpp">#include <boost/range/algorithm/adjacent_filtered.hpp> for(auto& adjacent_pair : boost::adjacent_filtered(items, [](const auto& lhs, const auto& rhs) { return lhs != rhs; })) { std::cout << adjacent_pair.first << " separator " << adjacent_pair.second; }</code>
이 접근 방식은 간결하고 우아한 솔루션을 제공합니다. 이지만 외부 라이브러리를 사용해야 합니다. 궁극적으로 어떤 관용구를 사용할지는 프로그래머의 특정 요구와 선호도에 따라 선택됩니다.
위 내용은 원하지 않는 구분 기호 없이 C에서 연속 요소 쌍을 반복하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!