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 | 교환
두 데크의 내용을 교환합니다. |