Deque (Double Ended Queue)
NOT THREAD SAFE
C++ vs Python vs Rust
| C++ | Rust | Python | |
|---|---|---|---|
| Declaration | deque<int> dq | let mut dq:VecDeque<i32> = VecDeque::new(); | self.dq = deque() |
| push at end | dq.push_back(x) | dq.push_back(x) | self.dq.append(x) |
| Front, Back element | dq.front(), dq.back() |
|
self.dq[0],self.dq[-1] |
| Pop front, back | dq.pop_front(), dq.pop_back() | dq.pop_front(), dq.pop_back() | self.dq.pop(), self.dq.popleft() |
| Check empty | !dq.empty() | !dq.empty() | bool(self.dq) != False |
| size | dq.size() | dq.len() | len(self.dq) |