[Rust 공식문서 한국어 정리] 129. Rust VecDeque<T> 가이드
[Rust 공식문서 한국어 정리] 129. Rust VecDeque 가이드
원문 제목: Struct std::collections::VecDeque
작성자: The Rust Project
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📌 1. 서론 — 이 문서가 다루는 내용
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Rust의 VecDeque가 제공하는 양방향 큐를 상세히 다룹니다.
VecDeque의 순환 버퍼 구조와 양쪽 끝 삽입/삭제의 효율성을 학습합니다.
Vec과의 차이, 양방향 연산이 O(1)인 이유를 정리합니다.
front, back 메서드와 pop, push, append 등 다양한 양방향 연산을 설명합니다.
슬라이스 기반 연산과 컬렉션 간 변환 패턴을 다룹니다.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔑 2. 핵심 개념 4가지
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
① VecDeque — 순환 버퍼 기반 양방향 큐
② O(1) 양방향 — 앞뒤 삽입/삭제가 모두 상수 시간
③ 순환 버퍼 — 메모리를 순환적으로 사용
④ Vec과의 차이 — Vec은 뒤쪽만 O(1), VecDeque는 양쪽 모두 O(1)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📖 3. 주요 내용 상세
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
VecDeque는 순환 버퍼 기반의 양방향 큐입니다.
VecDeque::new()로 빈 큐를 생성합니다.
VecDeque::with_capacity(n)으로 미리 용량을 할당합니다.
push_back(value)는 뒤에 삽입하고 push_front(value)는 앞에 삽입합니다.
pop_back()은 뒤를 제거하고 pop_front()는 앞을 제거합니다.
둘 다 Option를 반환합니다.
front()와 back()은 양 끝 요소를 Option<&T>로 조회합니다.
front_mut()과 back_mut()은 가변 참조를 제공합니다.
VecDeque의 양쪽 끝 삽입/삭제는 O(1)입니다.
Vec의 insert(0, value)는 O(n)이지만 VecDeque의 push_front는 O(1)입니다.
get(index)는 임의 인덱스 접근을 Option<&T>로 제공합니다.
임의 인덱스 접근도 O(1)이지만 인덱스가 순환 버퍼 경계를 넘을 수 있습니다.
append(&mut other)로 다른 VecDeque의 모든 요소를 뒤에 추가합니다.
make_contiguous()는 순환 버퍼를 연속적인 메모리로 재배치합니다.
as_slices()는 순환 버퍼를 두 개의 연속 슬라이스로 반환합니다.
into_iter()는 소유권 이전 반복자를 생성합니다.
iter()와 iter_mut()은 양방향 반복자를 제공합니다.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🛠 4. 실전 활용
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
FIFO 큐로 VecDeque를 사용하여 push_back과 pop_front로 구현합니다.
앞뒤 삽입/삭제가 모두 필요한 작업 버퍼에 VecDeque를 사용합니다.
BFS 알고리즘에서 탐색할 노드를 VecDeque로 관리합니다.
sliding window 알고리즘에서 양쪽 끝 요소 관리에 VecDeque를 활용합니다.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ 5. 정리
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
VecDeque는 양방향 O(1) 삽입/삭제를 제공하는 순환 버퍼 큐입니다.
Vec과의 차이를 이해하고 양쪽 끝 연산이 빈번할 때 VecDeque를 선택합니다.
FIFO 큐와 양방향 작업 버퍼에 최적입니다.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔗 출처 링크
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
원문: https://doc.rust-lang.org/std/collections/struct.VecDeque.html
VecDeque Methods: https://doc.rust-lang.org/std/collections/struct.VecDeque.html
#Rust #VecDeque #양방향큐 #순환버퍼 #번역

오뉴노노 님의 최근 댓글
ㅋㅋㅋㅋㅋ 2019 01.14 잘 읽었습니다 2018 12.30 포인트가 없어서 아직 시작을 못하고있는데요! 글은 잘 읽었습니다! 포인트 쌓고 도전할거에요 2018 12.30