>백엔드 개발 >C++ >C 11 범위 기반 For 루프가 역방향으로 반복될 수 있습니까?

C 11 범위 기반 For 루프가 역방향으로 반복될 수 있습니까?

DDD
DDD원래의
2024-12-12 22:02:17553검색

Can C  11 Range-Based For Loops Iterate in Reverse?

C 11을 사용한 역방향 범위 기반 반복

질문:

방법이 있나요? 범위 기반 for 루프의 반복자 방향을 바꾸려면? 현재 rbegin() 및 rend()를 사용하여 명시적 반복자로 표준 for 루프를 변환하는 것이 가능하지만 범위 기반 버전에 대해 유사한 구문을 사용하는 것이 유리할 것입니다.

답변:

Boost는 사용자 정의 어댑터를 만드는 대신 Boost::adaptors::reverse를 사용하여 편리한 솔루션을 제공합니다. 이 어댑터는 반복하는 동안 요소의 순서를 바꿉니다.

사용 예:

#include <list>
#include <iostream>
#include <boost/range/adaptor/reversed.hpp>

int main()
{
    std::list<int> x { 2, 3, 5, 7, 11, 13, 17, 19 };
    for (auto i : boost::adaptors::reverse(x))
        std::cout << i << '\n';
    for (auto i : x)
        std::cout << i << '\n';
}

위 내용은 C 11 범위 기반 For 루프가 역방향으로 반복될 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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