STL 컨테이너 어댑터의 기본 컨테이너 액세스
C에서 STL 컨테이너 어댑터는 기존 컨테이너 위에 추가 기능을 추가합니다. 그러나 이러한 어댑터의 기본 컨테이너에 액세스하는 것은 특정 작업에 바람직할 수 있습니다.
스택 및 대기열 방법
스택 및 대기열의 경우 비표준이 있습니다. 기본 컨테이너를 검색할 수 있는 _Get_container()라는 메서드입니다. 그러나 이 방법은 표준의 일부가 아니며 구현에 따라 사용 가능 여부가 다를 수 있습니다.
Priority_queue에 대한 방법
안타깝게도 기본 개체에 액세스하는 표준 방법은 없습니다. Priority_queue의 컨테이너.
대체 접근 방식
세 가지 컨테이너 어댑터 모두에 대한 한 가지 대안 접근 방식은 기본 컨테이너에 액세스할 수 있는 비공개 파생 클래스를 사용하는 것입니다. 예를 들어, Priority_queue의 경우:
<code class="cpp">template <class T, class S, class C> S& Container(priority_queue<T, S, C>& q) { struct HackedQueue : private priority_queue<T, S, C> { static S& Container(priority_queue<T, S, C>& q) { return q.*&HackedQueue::c; } }; return HackedQueue::Container(q); }</code>
이 접근 방식을 사용하면 Container() 함수를 통해 기본 컨테이너에 액세스할 수 있습니다.
표준 라이브러리 문서
C 표준 라이브러리에 대한 공식 문서는 다음 위치에서 찾을 수 있습니다:
설명
사용자의 목표는 일반 함수를 사용하여 단일 값 컨테이너의 내용을 인쇄하는 것입니다. 이는 실제 데이터가 포함된 기본 컨테이너에 액세스하여 달성할 수 있습니다.
위 내용은 STL 컨테이너 어댑터의 기본 컨테이너에 액세스하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!