docs(10_Wiki): 위키 구조 정리 — 언어 튜토리얼 카테고리 폴더 제거 + 신규 자산 동기화
Topic_CSS/Topic_HTML/Topic_JavaScript/Topic_Prompt/Topic_Comfyui 등 기존 카테고리 폴더를 정리하고, Topic_Graphic/Dev 등 신규 산출물과 Topics 내부 세션/메모리 기록을 동기화.
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
---
|
||||
id: cpp-deque
|
||||
title: "C++ Deque"
|
||||
category: "Programming_Language"
|
||||
status: "draft"
|
||||
verification_status: "conceptual"
|
||||
canonical_id: ""
|
||||
aliases: ["std::deque", "double-ended queue C++", "C++ 데크"]
|
||||
duplicate_of: ""
|
||||
source_trust_level: "B"
|
||||
confidence_score: 0.86
|
||||
created_at: 2026-07-04
|
||||
updated_at: 2026-07-04
|
||||
review_reason: ""
|
||||
merge_history: []
|
||||
tags: ["cpp", "programming-language", "w3schools", "stl", "deque"]
|
||||
raw_sources: ["https://www.w3schools.com/cpp/cpp_deque.asp"]
|
||||
applied_in: []
|
||||
github_commit: ""
|
||||
---
|
||||
|
||||
# [[CPP Deque]]
|
||||
|
||||
## 🎯 한 줄 통찰 (One-line insight)
|
||||
`deque` is what queue "should have been" if index access mattered — it takes queue's both-ends-conceptual-flexibility one step further by ALSO allowing `[]`/`.at()` indexing like vector, meaning deque is effectively "vector + list's both-ends growth combined," and its existence exposes that the earlier stack/queue restrictions (no brace-init, single/dual access points) were deliberate design trade-offs rather than technical limitations of the "add/remove from ends" idea itself. [S1]
|
||||
|
||||
## 🧠 핵심 개념 (Core concepts)
|
||||
- **Deque = double-ended queue** — unlike a plain queue (front removal, back insertion only), a deque allows adding AND removing from BOTH ends. [S1]
|
||||
- **Index access restored** — unlike stack/queue/list, a deque supports `[]` and `.at()` just like vector, combining both-ends flexibility with random access. [S1]
|
||||
- **Brace-initialization allowed** — unlike stack/queue, `deque<string> cars = {"Volvo", "BMW", "Ford", "Mazda"};` works directly, matching vector/list syntax. [S1]
|
||||
- **`.push_front()` / `.push_back()`, `.pop_front()` / `.pop_back()`** — identical method names to `list`, giving deque list's symmetric growth PLUS vector's indexing. [S1]
|
||||
- **`.front()` / `.back()`, `.size()` / `.empty()`** — same as every other sequence container covered so far. [S1]
|
||||
- **Looping** — both indexed `for` + `.size()` and for-each work, exactly like vector (unlike list, which only supports for-each). [S1]
|
||||
|
||||
## 📖 세부 내용 (Details)
|
||||
- Access: `cars[0]`, `cars.front()`, `cars.back()`, `cars.at(1)` — same safety trade-off as vector (`.at()` throws on out-of-range, `[]` does not). [S1]
|
||||
- Add/remove at both ends: `cars.push_front("Tesla"); cars.push_back("VW"); cars.pop_front(); cars.pop_back();`. [S1]
|
||||
- Both loop styles supported: indexed `for (int i = 0; i < cars.size(); i++)` AND for-each `for (string car : cars)`. [S1]
|
||||
|
||||
## ⚖️ 모순 및 업데이트 (Contradictions & updates)
|
||||
- **stack/queue의 제약이 deque에는 적용되지 않음**: stack과 queue는 선언 시 중괄호 초기화가 불가능했지만, deque는 vector/list와 동일하게 `= {...}`로 즉시 초기화가 가능하다는 점이 이번 챕터에서 확인됨 — 앞서의 제약이 "양 끝 삽입/삭제 컨테이너의 본질"이 아니라 설계 선택이었음을 보여줌. [S1]
|
||||
- **인덱스 접근과 양쪽 끝 성장이 동시에 가능해짐**: list는 양쪽 끝 성장은 가능했지만 인덱스 접근이 불가능했고, queue/stack은 인덱스 접근도 양쪽 끝 임의 접근도 안 됐지만, deque는 이 둘을 모두 갖춘 컨테이너로 확인됨. [S1]
|
||||
|
||||
## 🛠️ 적용 사례 (Applied in summary)
|
||||
현재 발견된 실제 적용 사례가 없습니다 — 자동차 이름 deque에 인덱스 접근, 양 끝 push/pop, 순회를 모두 적용하는 예제가 원문에서 제시됨. [S1]
|
||||
|
||||
## 💻 코드 패턴 (Code patterns)
|
||||
Deque combines vector's indexing with list's both-ends growth (C++):
|
||||
```cpp
|
||||
#include <deque>
|
||||
deque<string> cars = {"Volvo", "BMW", "Ford", "Mazda"};
|
||||
|
||||
cout << cars[0]; // indexed access, like vector
|
||||
cars.push_front("Tesla"); // both-ends growth, like list
|
||||
cars.push_back("VW");
|
||||
cars.pop_front();
|
||||
cars.pop_back();
|
||||
|
||||
for (int i = 0; i < cars.size(); i++) { // indexed loop works too
|
||||
cout << cars[i] << "\n";
|
||||
}
|
||||
```
|
||||
|
||||
## ✅ 검증 상태 및 신뢰도
|
||||
- **상태:** draft
|
||||
- **검증 단계:** conceptual
|
||||
- **출처 신뢰도:** B (W3Schools — widely used educational reference, not a primary standards body)
|
||||
- **신뢰 점수:** 0.86
|
||||
- **중복 검사 결과:** 신규 생성 (New discovery)
|
||||
|
||||
## 🔗 지식 그래프 (Knowledge Graph)
|
||||
- **상위/루트:** [[C++ Tutorial]]
|
||||
- **관련 개념:** [[CPP Queues]], [[CPP Vectors]], [[CPP List]], [[CPP Sets]]
|
||||
- **참조 맥락:** 데이터 구조(STL) 섹션 — Sets 챕터로 이어짐.
|
||||
|
||||
## 📚 출처 (Sources)
|
||||
- [S1] W3Schools — C++ Deque — https://www.w3schools.com/cpp/cpp_deque.asp
|
||||
|
||||
## 📝 변경 이력 (Change history)
|
||||
- 2026-07-04: Initial draft synthesized from the W3Schools "C++ Deque" page (Astra wiki-curation, P-Reinforce v3.1 format).
|
||||
Reference in New Issue
Block a user