STL 학습 기록 (5): Deque

4446 단어 STLdeque
STL 순서 용기 Deque
Deque 소개
Deque 는 데이터 구조의 양 끝 대기 열 로 Vector 와 유사 하 며 무 작위 접근 을 지원 하 는 순서 용기 입 니 다.하지만 Deque 보다 더 강 한 것 은 팀 의 머리 와 꼬리 에 요 소 를 빠르게 삽입 하고 삭제 하 는 것 을 지원 합 니 다.Deque 는 보통 동적 배열 의 형식 으로 이 루어 집 니 다. 이 는 요소 접근 이 상수 시간 내 에 이 루어 질 수 있 고 팀 헤드 와 팀 끝의 삽입 과 삭제 도 상수 시간 내 에 이 루어 질 수 있 습 니 다.그러나 중간 삽입 삭제 작업 은 선형 이다.
요소 접근
조작 하 다.
설명 하 다.
deq.at(pos)
deq 가 pos 에 있 는 요소 의 인용 을 되 돌려 줍 니 다. 이 동작 은 범위 검 사 를 진행 합 니 다.
deq[pos]
deq 가 pos 에 있 는 요소 의 인용 을 되 돌려 주 고 경계 검 사 를 하지 않 습 니 다.
deq.front( )
deq 의 첫 번 째 요소 의 인용 을 되 돌려 줍 니 다.
deq.back( )
deq 의 마지막 요소 의 인용 을 되 돌려 줍 니 다.
교체 기
조작 하 다.
설명 하 다.
deq.begin( )
deq 의 첫 번 째 요 소 를 되 돌려 주 는 교체 기 iterator
deq.end( )
deq 의 마지막 요 소 를 되 돌려 주 는 교체 기 iterator
deq.cbegin( )
deq 의 첫 번 째 요 소 를 되 돌려 주 는 교체 기 constiterator
deq.cend( )
deq 의 마지막 요 소 를 되 돌려 주 는 교체 기 constiterator
deq.rbegin( )
deq 역순 의 첫 번 째 요 소 를 되 돌려 주 는 역방향 교체 기 reverseiterator
deq.rend( )
deq 역순 의 마지막 요 소 를 되 돌려 주 는 역방향 교체 기 reverseiterator
deq.crbegin( )
deq 역순 의 첫 번 째 요 소 를 되 돌려 주 는 const 형 역방향 교체 기 constreverse_iterator
deq.crend( )
deq 역순 의 마지막 요 소 를 되 돌려 주 는 const 형 역방향 교체 기 constreverse_iterator
용량
조작 하 다.
설명 하 다.
deq.size( )
deq 에 있 는 요소 의 개 수 를 되 돌려 줍 니 다.
deq.empty( )
deq 가 비어 있 는 지 판단 하기
deq.max_size( )
deq 의 최대 용량 을 되 돌려 줍 니 다.
deq.shrink_to_fit( )
사용 하지 않 은 공간 용량 제거 (c + 11)
수정 클래스
조작 하 다.
설명 하 다.
deq.clear( )
deq 의 모든 요소 삭제
deq.erase(pos)
pos 에 있 는 요소 삭제
deq.erase(beg,end)
[beg, end) 사이 에 있 는 요 소 를 삭제 합 니 다.
deq.resize(num)
deq 의 크기 를 초기 화 합 니 다. deq 가 커지 면 추가 요 소 는 이 요소 의 기본 구조 함수 구 조 를 사용 합 니 다.
deq.resize(num,elem)
deq 의 크기 를 초기 화 합 니 다. deq 가 커지 면 새로 추 가 된 요 소 는 elem 의 복사 본 을 사용 합 니 다.
swap(deq1,deq2)
deq1 과 deq2 데이터 교환
deq1.swap(deq2)
deq 1 과 deq 의 모든 데 이 터 를 교환 합 니 다.
deq.assign(n,elem)
n 개 요소 elem 의 복사 값 을 deq 에 부여 합 니 다.
deq.assign(beg,end)
[beg, end) 범위 내의 요 소 를 deq 에 할당 합 니 다.
deq.assign({*x1,x2,……})
초기 화 목록 의 모든 요 소 를 deq 에 할당 합 니 다.
deq.push_back(elem)
elem 을 deq 의 끝 에 추가 합 니 다.
deq.push_front(elem)
elem 을 deq 앞 에 추가 합 니 다.
deq.pop_back( )
deq 의 마지막 요 소 를 제거 합 니 다 (이 값 을 되 돌려 주 는 것 이 아 닙 니 다)
deq.pop_front( )
deq 의 첫 번 째 요 소 를 제거 합 니 다 (이 값 을 되 돌려 주 는 것 이 아 닙 니 다)
deq.insert(pos,elem)
pos 전에 elem 의 복사 본 을 삽입 하고 이 요소 의 위 치 를 되 돌려 줍 니 다.
deq,insert(pos,n,elem)
pos 전에 n 개의 elem 복사 본 을 삽입 하고 첫 번 째 복사 위 치 를 되 돌려 줍 니 다 (n = = 0 으로 pos 를 되 돌려 줍 니 다.
deq.insert(pos,beg,end)
[beg, end) 사이 의 요 소 를 pos 에 삽입 하기 전에 (beg = = end 가 pos 를 되 돌려 줍 니 다.
deq.emplace(pos,args…)
인자 args... 초기 화 된 요 소 를 pos 에 삽입 하기 전에 이 요소 의 위치 c + 11 로 되 돌려 줍 니 다.
deq.emplace_back(args…)
인자 args... 초기 화 된 요 소 를 deq 의 끝 에 추가 합 니 다 (값 을 되 돌려 주지 않 음) c + 11
deq.insert(pos,{*x1,x2,…}*
목록 {* x1, x2,...} 에 있 는 모든 요소 의 복사 본 을 * pos 에 삽입 하기 전에 첫 번 째 복사 위 치 를 되 돌려 줍 니 다 (비어 있 을 때 pos 로 돌아 갑 니 다) c + 11
코드 인 스 턴 스:
#include <iostream>
#include <deque>
#include <string>
#include <algorithm>
#include <iterator>
using namespace std;

int main()
{
    deque<string> deq;
    deq.assign(3,string("string"));
    deq.push_back("last string");
    deq.push_front("first string");
    copy(deq.cbegin(),deq.cend(),ostream_iterator<string>(cout,"
"
)); cout<<endl; deq.pop_front(); deq.pop_back(); for(int i=1;i<deq.size();++i) deq[i] = "another" + deq[i]; deq.resize(4,"resize string"); copy(deq.cbegin(),deq.cend(),ostream_iterator<string>(cout,"
"
)); return 0; }

프로그램의 출력: first string string string string last string
string another string another string resized string
저작권 성명: 본 고 는 블 로 거들 이 창작 한 글 로 블 로 거들 의 허락 없 이 전재 할 수 없다.

좋은 웹페이지 즐겨찾기