사용자 정의 STL 컨테이너를 만드는 방법
STL 컨테이너처럼 작동하는 새 컨테이너를 디자인할 때 호환성을 보장하기 위한 몇 가지 지침이 있습니다.
템플릿 및 유형 정의
컨테이너는 적절한 유형의 일반 템플릿 클래스로 선언되어야 합니다. 정의:
-
typedef 정의:
- 할당자 유형
- 값 유형
- 참조 유형
- 포인터 유형
- 차이 유형
- 크기 유형
-
다음에 대한 클래스 선언:
- 적절한 반복자 범주가 있는 반복자 유형(예: std::random_access_iterator_tag )
- Const 반복자 type
반복자
반복자는 다음을 제공해야 합니다.
-
다음에 대한 유형 정의:
- 차이 유형
- 값 type
- 참조 유형
- 포인터 유형
-
생성자:
- 대입 연산자
- 비교 연산자
- 증감 연산자(선택 사항)
- 추가 및 빼기 연산자 (선택 사항)
- 임의 액세스 연산자(예: 연산자[()])(선택 사항)
- 역참조 연산자(연산자*() 및 연산자->())
컨테이너 클래스
컨테이너 클래스는 include:
-
생성자:
- 과제 연산자
- 비교 연산자(선택 사항)
- 시작 및 끝 반복자
- 역방향 반복자(선택 사항)
-
요소 액세스 함수:
- 앞()과 뒤() (선택 사항)
- push_front() 및 push_back()(선택 사항)
- pop_front() 및 pop_back()(선택 사항)
- operator[]()(선택 사항)
-
삽입 및 삭제 함수:
- emplace()(선택 사항)
- insert()(선택 사항)
- erase()(선택 사항)
- clear() (선택)
-
과제 기능:
- sign()(선택 사항)
- swap()(선택 사항)
-
유틸리티 함수:
- size()
- max_size()
- empty()
-
할당자 액세스 함수 :
테스트
컨테이너가 올바르게 작동하는지 확인하려면 테스터와 같은 감시 개체가 포함된 테스트 하네스를 사용하여 동작을 확인하세요. 이 하네스를 사용하면 메모리 누수 및 리소스 관리 문제를 확인할 수 있습니다.
위 내용은 맞춤형 STL 호환 컨테이너를 설계하고 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!