C++์์ ๋ฆฌ์คํธ์ ๋ฒกํฐ๋ ๊ฐ๊ฐ ๋ฌด์์ด๊ณ ๋์ ์ด๋ป๊ฒ ๋ค๋ฅธ์ง ์์๋ณด์.
C++์ Standard Template Library(STL)์ ์๋ ์ปจํ ์ด๋(๋ชจ๋ ํ์ ์ ๊ฐ์ฒด ๋ณด๊ด)๋ ํฌ๊ฒ ๋ ๊ฐ๋ก ๋๋๋ค.
๊ฐ์ฒด๋ค์ ์์ฐจ์ ์ผ๋ก ๋ณด๊ดํ๋ ์ํ์ค ์ปจํ ์ด๋ (sequence container) ์
ํค๋ฅผ ๋ฐํ์ผ๋ก ๋์๋๋ ๊ฐ์ ์ฐพ์์ฃผ๋ ์ฐ๊ด ์ปจํ ์ด๋ (associative container)๋ค.
์ํ์ค ์ปจํ ์ด๋์ ํด๋นํ๋ ๋ฆฌ์คํธ์ ๋ฒกํฐ๋ ๋ฌด์์ด ๋ค๋ฅผ๊น?
๋ฒกํฐ(vector)๋ ๋์ ๋ฐฐ์ด(dynamic array)๋ก ๊ตฌํ๋์ด ์๊ณ ,
๋ฆฌ์คํธ(list)๋ ์ด์ค ์ฐ๊ฒฐ ๋ฆฌ์คํธ(Double Linked List)๋ก ๊ตฌํ๋์ด ์๋ค.
์ด์ ๋ฐ๋ผ ๋ฒกํฐ๋ ์ฐ์์ ์ผ๋ก ๊ฐ์ ์ ์ฅํ๊ณ , ๋ฆฌ์คํธ๋ ๋ถ์ฐ์์ ์ผ๋ก ๊ฐ์ ์ ์ฅํ๋ค.
๋ ๋ฒกํฐ๋ Random Access๊ฐ ๊ฐ๋ฅํ์ง๋ง ๋ฆฌ์คํธ๋ ๋ถ๊ฐ๋ฅํ๋ค.
์ข ๋ ์ฝ๊ฒ ํ์ด ์ด์ผ๊ธฐํด๋ณด๋ฉด,
๋ฒกํฐ๋ '์ธ๋ฑ์ค'๋ก ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ฐ ์ค๊ฐ์ ์์๋ฅผ ์ฝ์ ํ๋ ค๋ฉด ๋ค์ ๊ฒ๋ค์ ๋ฐ์ด๋ด๊ณ ์ด๋ฅธ๋ฐ '๋ผ์๋ฃ๊ธฐ'๋ฅผ ํด์ผ ํ๊ณ ,
๋ฆฌ์คํธ์ ์๋ ์์์๋ 'ํฌ์ธํฐ'๋ฅผ ์ด์ฉํด ์ ๊ทผํ ์ ์๋๋ฐ
Linked ๋์ด ์๋ ๊ตฌ์กฐ ๋๋ฌธ์ 15๋ฒ์งธ ์์์ ์ ๊ทผํ๋ ค๋ฉด iterator๋ฅผ ํตํด 14๊ฐ์ ์์๋ฅผ ํต๊ณผํด์ผ๋ง ํ๋ค.
'์ธ๋ฑ์ค' ์ ๊ทผ๊ณผ ๋ฌ๋ฆฌ 'ํฌ์ธํฐ'๋ฅผ ์ด์ฉํ ์ ๊ทผ์ ์ฒ์ ๋๋ ๋์์ ์ถ๋ฐํด ์ ํ ํ์์ ํด์ผํ๊ธฐ ๋๋ฌธ์ด๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก ์ฝ์ , ์ญ์ ์ ์์ด์๋ ๋ฆฌ์คํธ๊ฐ ํจ์จ์ ์ด๊ณ , ๊ฒ์์ ์์ด์๋ ๋ฒกํฐ๊ฐ ํจ์จ์ ์ด๋ค.
(ํ์ง๋ง ๋ ๊ฐ์ ์ฝ์ , ์ญ์ ํ๋ ๊ฒฝ์ฐ ์ํ์ค ์ปจํ ์ด๋ list, vector, deque ์ค vector๊ฐ ๊ฐ์ฅ ๋น ๋ฅด๋ค.)
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python][AI] pandas, numpy ๊ธฐ์ด ํจ์ ์ ๋ฆฌ (1) | 2023.10.09 |
---|---|
[BOJ] ์ฝ๋ฉ ๋ฌธ์ ํ์ด๋ ๊นํ๋ธ์! (0) | 2023.08.22 |
[BOJ] 3098๋ฒ. ์์ ๋คํธ์ํฌ (C++) (0) | 2023.08.04 |
[BOJ] 1058๋ฒ. ์น๊ตฌ (C++ 17) (0) | 2023.08.02 |
[BOJ] C++์ฐ์ตํ๊ธฐ! ๋ฐฑ์ค ๋ฌธ์ ์ง (by jihwan0319) (0) | 2023.08.01 |