C 11 Boost를 사용한 역방향 범위 기반 For-Loop
컨테이너를 역순으로 반복하는 것은 전용 컨테이너 어댑터를 사용하여 수행할 수 있습니다. 반복자의 방향을 반대로 바꿉니다. 이를 통해 범위 기반 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'; }
이 코드는 먼저 다음의 목록 x를 생성합니다. 정수. 그런 다음 Boost::adaptors::reverse(x) 어댑터를 사용하여 목록을 역순으로 반복합니다. 요소를 역순으로 인쇄한 다음 비교를 위해 원래 순서를 따릅니다.
프로그램 출력은 다음과 같습니다.
19 17 13 11 7 5 3 2 2 3 5 7 11 13 17 19
이는 Boost Boost::adaptor의 기능을 보여줍니다. :reverse 어댑터는 반복자의 방향을 바꾸고 C의 범위 기반 for 루프를 사용하여 편리한 역 반복을 허용합니다.
위 내용은 Boost::adaptors::reverse C 11에서 역방향 범위 기반 For 루프를 어떻게 활성화할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!