C ++ 라이브러리-<deque>

소개

Deque는 Double Ended Queue. 크기 런타임을 변경할 수있는 시퀀스 컨테이너입니다. 컨테이너는 동일한 유형의 데이터를 보유하는 개체입니다. 시퀀스 컨테이너는 요소를 엄격하게 선형 시퀀스로 저장합니다.

deque의 요소는 다른 메모리 청크에 흩어져있을 수 있습니다. 컨테이너는 일정한 시간에 모든 요소에 직접 액세스 할 수 있도록 필요한 정보를 저장합니다. 벡터와 달리 deque는 인접한 메모리 위치에 모든 요소를 ​​저장한다고 보장 할 수 없습니다. 따라서 포인터를 오프셋하여 데이터에 직접 액세스 할 수 없습니다. 그러나 첨자 연산자 []를 사용하여 모든 요소에 직접 액세스 할 수 있습니다.

Deque는 런타임에 양쪽 끝에서 필요에 따라 축소하거나 확장 할 수 있습니다. 스토리지 요구 사항은 내부 할당 자에 의해 자동으로 충족됩니다 . Deque는 벡터와 유사한 기능을 제공하지만 모든 끝에서 데이터를 삽입하고 삭제할 수있는 효율적인 방법을 제공합니다.

0 크기의 데크도 유효합니다. 이 경우 deque.begin () 및 deque.end ()는 동일한 위치를 가리 킵니다. 그러나 front () 또는 back ()을 호출하는 동작은 정의되지 않았습니다.

정의

아래는 <deque> 헤더 파일의 std :: deque 정의입니다.

template < class T, class Alloc = allocator<T> > class deque;

매개 변수

  • T − 포함 된 요소의 유형.

    T는 사용자 정의 유형을 포함한 다른 데이터 유형으로 대체 될 수 있습니다.

  • Alloc − 할당 자 개체의 유형.

    기본적으로 가장 간단한 메모리 할당 모델을 정의하고 값에 독립적 인 할당 자 클래스 템플릿이 사용됩니다.

회원 유형

다음 멤버 유형은 멤버 함수에 의해 매개 변수 또는 리턴 유형으로 사용될 수 있습니다.

Sr. 아니. 회원 유형 정의
1 값 _ 유형 T (템플릿의 첫 번째 매개 변수)
2 할당 자 _ 유형 Alloc (템플릿의 두 번째 매개 변수)
참고 값 _ 유형 &
4 const_reference const 값 _ 유형 &
5 바늘 값 _ 유형 *
6 const_pointer const 값 _ 유형 *
7 반복자 value_type에 대한 랜덤 액세스 반복기
8 const_iterator const value_type에 대한 임의 액세스 반복기
9 reverse_iterator std :: reverse_iterator <반복자>
10 const_reverse_iterator std :: reverse_iterator <const_iterator>
11 크기 유형 size_t
12 차이 _ 유형 ptrdiff_t

<deque>의 기능

아래는 <deque> 헤더의 모든 메소드 목록입니다.

생성자

Sr. 아니. 방법 및 설명
1 deque :: deque 기본 생성자

요소가없는 빈 deque를 구성합니다.

2 deque :: deque 채우기 생성자

n 개의 요소 로 새로운 deque를 구성하고 deque의 각 요소에 val 을 할당합니다.

deque :: deque 범위 생성자

처음 부터 마지막 까지의 범위에있는만큼 많은 요소로 deque를 구성 합니다.

4 deque :: deque 복사 생성자

기존 컨테이너에있는 각 요소의 복사본으로 deque를 구성합니다.

5 deque :: deque 이동 생성자

이동 의미 체계를 사용하여 other의 내용으로 deque를 구성합니다.

6 deque :: deque 이니셜 라이저 목록 생성자

초기화 목록에서 deque를 생성합니다.

폐물 소각로

Sr. 아니. 방법 및 설명
1 deque :: ~ deque

메모리 할당을 해제하여 deque 객체를 파괴합니다.

회원 기능

Sr. 아니. 방법 및 설명
1 deque :: 범위 버전 할당

이전 값을 대체하여 deque 요소에 새 값을 지정하십시오.

2 deque :: 채우기 버전 지정

이전 값을 대체하여 deque 요소에 새 값을 지정하십시오.

deque :: 할당 이니셜 라이저 목록 버전

이전 값을 대체하여 deque 요소에 새 값을 지정하십시오.

4 deque :: at

deque의 위치 n 에있는 요소에 대한 참조를 반환 합니다.

5 deque :: back

deque의 마지막 요소에 대한 참조를 반환합니다.

6 deque :: begin

deque의 첫 번째 요소를 가리키는 임의 액세스 반복기를 반환합니다.

7 deque :: cbegin

deque의 시작을 가리키는 상수 임의 액세스 반복기를 반환합니다.

8 deque :: cend

deque의 시작을 가리키는 상수 임의 액세스 반복기를 반환합니다.

9 deque :: clear

deque에서 모든 요소를 ​​제거하여 deque를 파괴하고 deque의 크기를 0으로 설정합니다.

10 deque :: crbegin

컨테이너의 역방향 시작을 가리키는 상수 역방향 반복기를 반환합니다.

11 deque :: crend

deque의 반대 끝을 가리키는 상수 역방향 반복기를 반환합니다.

12 deque :: emplace

위치에 새 요소를 삽입하여 컨테이너를 확장합니다 .

13 deque :: emplace_back

deque 끝에 새 요소를 삽입합니다.

14 deque :: emplace_front

deque의 시작 부분에 새 요소를 삽입합니다.

15 deque :: empty

deque가 비어 있는지 여부를 테스트합니다.

16 deque :: end

deque 컨테이너의 마지막 요소 를 가리키는 반복기를 반환합니다 .

17 deque :: erase 위치 버전

데크에서 단일 요소를 제거합니다.

18 deque :: erase 범위 버전

데크에서 단일 요소를 제거합니다.

19 deque :: front

데크의 첫 번째 요소에 대한 참조를 반환합니다.

20 deque :: get_allocator

deque와 관련된 할당자를 반환합니다.

21 deque :: 단일 요소 버전 삽입

위치에 새 요소를 삽입하여 컨테이너를 확장합니다 .

22 deque :: 채우기 버전 삽입

컨테이너에 새 요소를 삽입하여 컨테이너를 확장합니다.

23 deque :: 범위 버전 삽입

컨테이너에 새 요소를 삽입하여 컨테이너를 확장합니다.

24 deque :: 이동 버전 삽입

컨테이너에 새 요소를 삽입하여 컨테이너를 확장합니다.

25 deque :: insert 이니셜 라이저 목록 버전

컨테이너에 새 요소를 삽입하여 컨테이너를 확장합니다.

26 deque :: max_size

deque가 보유 할 수있는 최대 요소 수를 반환합니다.

27 deque :: operator = 버전 복사

이전 내용을 교체하여 deque에 새 내용을 할당하고 필요한 경우 크기를 수정합니다.

28 deque :: operator = 버전 이동

이전 내용을 교체하여 deque에 새 내용을 할당하고 필요한 경우 크기를 수정합니다.

29 deque :: operator = 이니셜 라이저 목록 버전

이전 내용을 교체하여 deque에 새 내용을 할당하고 필요한 경우 크기를 수정합니다.

30 deque :: operator []

n 위치에있는 요소에 대한 참조를 반환합니다 .

31 deque :: pop_back

deque에서 마지막 요소를 제거하고 deque의 크기를 하나씩 줄입니다.

32 deque :: pop_front

deque에서 첫 번째 요소를 제거하고 deque의 크기를 하나씩 줄입니다.

33 deque :: push_back

deque 끝에 새 요소를 삽입하고 deque 크기를 1 씩 늘립니다.

34 deque :: push_back 이동 버전

deque 끝에 새 요소를 삽입하고 deque 크기를 1 씩 늘립니다.

35 deque :: push_front

deque 앞에 새 요소를 삽입하고 deque의 크기를 1 씩 늘립니다.

36 deque :: push_front 이동 버전

deque 앞에 새 요소를 삽입하고 deque의 크기를 1 씩 늘립니다.

37 deque :: rbegin

deque의 마지막 요소를 가리키는 역방향 반복기를 반환합니다.

38 deque :: rend

deque의 반대 끝을 가리키는 역방향 반복기를 반환합니다.

39 deque :: resize

데크의 크기를 변경합니다.

40 deque :: resize 값 버전

데크의 크기를 변경합니다.

41 deque :: shrink_to_fit

컨테이너가 크기에 맞게 용량을 줄 이도록 요청합니다.

42 deque :: size

데크에있는 요소의 수를 반환합니다.

43 deque :: swap

deque의 내용을 다른 deque x의 내용으로 교환합니다 .

비 멤버 오버로드 함수

Sr. 아니. 방법 및 설명
1 연산자 ==

두 데크가 같은지 여부를 테스트합니다.

2 연산자! =

두 데크가 같은지 여부를 테스트합니다.

연산자 <

첫 번째 데크가 다른 데크보다 작은 지 여부를 테스트합니다.

4 연산자 <=

첫 번째 deque가 other보다 작거나 같은지 여부를 테스트합니다.

5 연산자>

첫 번째 데크가 다른 데크보다 큰지 여부를 테스트합니다.

6 연산자> =

첫 번째 데크가 다른 데크보다 크거나 같은지 여부를 테스트합니다.

7 교환

두 데크의 내용을 교환합니다.