>백엔드 개발 >C++ >C 11 범위 기반 For 루프를 사용하여 컨테이너를 통해 반복을 쉽게 역방향으로 수행하려면 어떻게 해야 합니까?

C 11 범위 기반 For 루프를 사용하여 컨테이너를 통해 반복을 쉽게 역방향으로 수행하려면 어떻게 해야 합니까?

DDD
DDD원래의
2024-12-02 15:58:10926검색

How Can I Easily Reverse Iterate Through a Container Using C  11 Range-Based For-Loops?

C 11 역방향 범위 기반 For 루프

범위 기반 for 루프를 사용하여 컨테이너를 역순으로 반복하려면 반복자의 방향. 명시적 반복자는 간단한 솔루션을 제공하지만 이 기능을 제공하는 편리한 컨테이너 어댑터가 있습니까?

역방향 반복자 어댑터

다행히도 Boost 라이브러리에는 Boost라는 솔루션이 포함되어 있습니다. ::어댑터::reverse. 이 어댑터는 컨테이너의 반복 순서를 반대로 바꾸어 범위 기반 for 루프가 역방향으로 반복되도록 합니다.

사용 예

정수 컨테이너를 고려해보세요.

std::list<int> x { 2, 3, 5, 7, 11, 13, 17, 19 };

범위 기반 for 루프를 사용하여 이 컨테이너를 역방향으로 반복하려면 역방향을 사용하세요. 어댑터:

for (auto i : boost::adaptors::reverse(x))
    std::cout << i << '\n';

이렇게 하면 목록의 요소가 역순으로 인쇄됩니다.

원래 반복과 비교

비교를 위해 다음을 참조하세요. 역방향 어댑터 없이 원래 반복 순서:

for (auto i : x)
    std::cout << i << '\n';

이렇게 하면 목록의 요소가 인쇄됩니다.

결론

Boost의 역방향 어댑터는 범위 기반 for 루프를 사용하여 역순으로 컨테이너를 반복하는 편리한 방법을 제공합니다. 이를 통해 코드가 단순화되고 더욱 간결하고 효율적인 역반복이 가능해집니다.

위 내용은 C 11 범위 기반 For 루프를 사용하여 컨테이너를 통해 반복을 쉽게 역방향으로 수행하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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