๐ Deque๋
- ๋งจ ์, ๋งจ ๋ค์ ์์๋ฅผ ์ถ๊ฐํ ์ ์๋ ์๋ฃ๊ตฌ์กฐ
- ๋์ ๋ฐฐ์ด ํํ
- ์์์ ์์น ์์ ์ ๊ทผ, ์๋ค ์์ ์ฝ์
์ O(1) ๋ณด์ฅ
๐ Deque ํจ์
- dq.begin(): ์ฒซ๋ฒ์งธ ์์๋ฅผ ๊ฐ๋ฆฌํค๋ iterator
- dq.end(): ๋ง์ง๋ง ์์ ๋ค์์ ๊ฐ๋ฆฌํค๋ iterator
- dq.assign(n): ์์ n๊ฐ๋ก ์ด๊ธฐํ
- dq.assign(n, m): ์์ n๊ฐ๋ฅผ m์ผ๋ก ์ด๊ธฐํ
- dq.front(): ์ฒซ ๋ฒ์งธ ์์
- dq.back(): ๋ง์ง๋ง ์์
- dq.at(i): i๋ฒ์งธ ์์
- dq.push_front(n): ๊ฐ์ฅ ์์ n ์ถ๊ฐ
- dq.push_back(n): ๊ฐ์ฅ ๋ง์ง๋ง์ n ์ถ๊ฐ
- dq.pop_front(): ๊ฐ์ฅ ์ ์์ ๊บผ๋ด๊ธฐ
- dq.pop_back(): ๊ฐ์ฅ ๋ง์ง๋ง ์์ ๊บผ๋ด๊ธฐ
- dq.insert(v.begin(), n): iterator๊ฐ ๊ฐ๋ฆฌํค๋ ์์น์ n ์์ ์ถ๊ฐ
- dq.size(): ๋ฑ ์ฌ์ด์ฆ ๋ฐํ
- dq.resize(n): n์ผ๋ก ์ฌ์ด์ฆ ๋ณ๊ฒฝ
- dq.clear(): ์ ์ฒด ์์ ์ญ์
- dq.erase(v.begin()): iterator๊ฐ ๊ฐ๋ฆฌํค๋ ์์ ์ญ์ . size ๋ณํจ.
๐ Deque ์ฌ์ฉ๋ฒ
#include <deque>
deque<int> dq;
dq.push_back(n); // ๋งจ ๋ค n ์ฝ์
dq.push_front(n); // ๋งจ ์ n ์ฝ์
dq.pop_back(); // ๋งจ ๋ค ์์ ์ญ์
dq.pop_front(); // ๋งจ ์ ์์ ์ญ์