>  기사  >  백엔드 개발  >  C에서 불필요한 구분 기호 없이 연속 요소를 반복하는 방법은 무엇입니까?

C에서 불필요한 구분 기호 없이 연속 요소를 반복하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-26 23:21:31842검색

How to Iterate Through Consecutive Elements Without Extraneous Separators in C  ?

외부 구분 없이 연속 요소 반복

객체 지향 프로그래밍에서는 원하지 않는 후행 구분 기호를 도입하지 않고 컬렉션의 연속 요소 간에 연산을 수행하는 것이 일반적인 작업입니다. . 이 문제는 컬렉션을 반복하고 요소 사이의 구분 기호를 조건부로 인쇄하여 해결됩니다.

C 11의 범위 기반 for 루프를 사용하면 장황하지만 효과적인 해결책은 두 번째 반복자를 1씩 앞당겨 요소를 반복하는 것입니다. :

<code class="cpp">for (auto it = items.cbegin(); it != items.cend(); it++) {
    cout << *it;
    if (std::next(it) != items.cend()) {
        cout << separator;
    }
}</code>

그러나 이 접근 방식은 두 번째 반복자의 오버헤드를 추가하고 기본 논리를 모호하게 합니다.

이 미학적 문제를 극복하기 위한 더 간단한 접근 방식은 문자열 변수를 조건부로 업데이트하는 것입니다. 구분 기호 보유:

<code class="cpp">const auto separator = "WhatYouWantHere";
const auto* sep = "";
for (const auto& item : items) {
    std::cout << sep << item;
    sep = separator;
}</code>

sep 변수를 빈 문자열로 초기화하고 루프 내에서 업데이트하여 마지막 요소를 제외한 모든 요소 사이에 구분 기호가 인쇄되도록 합니다. 이는 문제에 대한 간결하고 효율적인 솔루션을 제공합니다.

위 내용은 C에서 불필요한 구분 기호 없이 연속 요소를 반복하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.