2020. 8. 9. 17:18ใPROGRAMMING/C++ STL
[ STL ์๋ฃ๊ตฌ์กฐ list ]
STL์ list๋ ์ด์ค ์ฐ๊ฒฐ ๋ฆฌ์คํธ์ด๋ค.
์์๋ฅผ ํ ๋ฒ์ ํ๋์ฉ ์ ๋ค๋ก ์ํํ ์ ์๋ ์๋ฐฉํฅ ๋ฐ๋ณต์(bidirectional iterator)๋ฅผ ์ ๊ณตํ๋ค.
์ด๋ ์์น์์๋ ์์ ์๊ฐ์ ์์๋ฅผ ์ฝ์ & ์ญ์ ํ ์ ์๋ค.vector์ ๋ฌ๋ฆฌ ํญ์ ์์ ์๊ฐ์ ์์๋ฅผ ์ ๊ทผํ ์ ์๋ ๋๋ค ๋ฐ๋ณต์๋ฅผ ์ ๊ณตํ์ง๋ ์์ง๋ง,๋ง์ ์๊ณ ๋ฆฌ์ฆ ํจ์๋ ์์ฐจ์ ์ผ๋ก ์ก์ธ์คํ ์๋ง ์์ผ๋ฉด ์ถฉ๋ถํ๋ค.
[ STL list ์์ ์ถ๊ฐ ]
list๋ ์๋ฐฉํฅ์ผ๋ก ์์์ ์ ๊ทผํ ์ ์๊ธฐ ๋๋ฌธ์
vector์ ๋ฌ๋ฆฌ ์ปจํ ์ด๋์ ์, ๋ค๋ก ์์๋ฅผ ์ถ๊ฐํ ์ ์๋ค.
[ STL list ์์ ์ ๊ฑฐ ]
1. ์ ์ญํจ์ remove
4๋ผ๋ ์์๊ฐ ์ ๊ฑฐ๋์ง๋ง, remove() ํจ์๋ ์ ๊ฑฐํ๋ ค๋ ์์๊ฐ ์ด๋ค ์ปจํ ์ด๋์ ์์์ธ์ง ์ ๋ฐฉ๋ฒ์ด ์๋ค.
์๊ณ ๋ฆฌ์ฆ๊ณผ ์ปจํ ์ด๋๋ ์๋ก ๋ชจ๋ฅด๋ ์ฌ์ด์ด๊ธฐ ๋๋ฌธ์ด๋ค.
๋ฐ๋ผ์ ์ผ๋จ ์ ๊ฑฐํ๋ ค๋ ๊ฐ์ด ์๋ค๋ฉด ๊ทธ ๊ฐ์
์ปจํ ์ด๋์ ๋ง์ง๋ง ๊ฐ์ผ๋ก ์นํํ๋ ๋ฐฉ์์ผ๋ก ์์๋ฅผ ์ ๊ฑฐํ๋ค.
2. ๋ฉค๋ฒํจ์ remove
list์ remove() ๋ฉค๋ฒ ํจ์๋ฅผ ์ฌ์ฉํ๋, ์ฐ๋ฆฌ๊ฐ ์ํ๋ ๋๋ก ์์๊ฐ ์ ๊ฑฐ๋๋ค.
list์ remove()๋ ๋ฉค๋ฒ ํจ์์ด๊ธฐ ๋๋ฌธ์ list์ ํน์ฑ์ ๊ทธ๋๋ก ๋ค ์ด์ฉํ ์ ์๋ค.
๋ฐ๋ผ์ STL์์ ๊ฐ์ ๊ธฐ๋ฅ์ ์ ์ญํจ์์ ๋ฉค๋ฒ ํจ์๊ฐ ์๋ค๋ฉด
๋ ๋งํ ๊ฒ๋ ์์ด ๋ฉค๋ฒํจ์๋ฅผ ์ ํํด์ ์ฌ์ฉํด์ผ ํ๋ค.
3. ๋ฉค๋ฒํจ์ erase
list์ erase() ๋ฉค๋ฒ ํจ์๋ ๋ฐ๋ณต์๋ฅผ ํตํด์ ์์๋ฅผ ์ ๊ฑฐํ ์ ์๋ค.
[ STL vector์ list ]
1. vector๋ ์ฐ์๋ ๋ฉ๋ชจ๋ฆฌ์ง๋ง, (๋ฐฐ์ด ๊ธฐ๋ฐ)
list์ ๋ฉ๋ชจ๋ฆฌ๋ ์ฐ์๋์ด์์ง ์๋ค. (๋ ธ๋ ๊ธฐ๋ฐ)
2. vector๋ ๋น ๋ฅธ ๋ฐ์ดํฐ ์ฐธ์กฐ์ ์ ๋ฆฌํ๋ค.
[] ์ฐ์ฐ์๊ฐ ์ค๋ฒ ๋ก๋ฉ๋ผ์์ด ์ํ๋ ์์์ ๋ฐ๋ก ์ ๊ทผ ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์ด๋ค.
list๋ ๋ฐ๋ณต์๋ฅผ ํตํ ์์ฐจ ํ์๋ง ๊ฐ๋ฅํ๋ค.
3. ๋น๋ฒํ ์ฝ์ , ์ญ์ ๊ฐ ํ์ํ ๊ฒฝ์ฐ์๋ list๊ฐ ์ ๋ฆฌํ๋ค.
vector๋ ๋ฉ๋ชจ๋ฆฌ ์ ์ฑ ์ ๋ฐ๋ผ ๋ฉ๋ชจ๋ฆฌ์ ๋น๋ฒํ ํ ๋น, ์ฌํ ๋น์ด ์ผ์ด๋ ์๋ ์๊ณ
ํ ๋นํ ๋ฉ๋ชจ๋ฆฌ์ ๋นํด ํจ์ฌ ์ ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ๋ ์์ ์ ์๋ค.
๋ฐ๋ฉด, list๋ ๋ ธ๋ ๊ธฐ๋ฐ์ด๊ธฐ ๋๋ฌธ์ ์์์ ๊ฐ์๋งํผ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ค.
'PROGRAMMING > C++ STL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ค์ ์ ๋ฆฌํ๋ C++ STL ์๋ฃ๊ตฌ์กฐ unordered_map/set (0) | 2020.08.11 |
---|---|
๋ค์ ์ ๋ฆฌํ๋ C++ STL ์๋ฃ๊ตฌ์กฐ map/set (2) | 2020.08.10 |
๋ค์ ์ ๋ฆฌํ๋ C++ STL ์๋ฃ๊ตฌ์กฐ vector (0) | 2020.08.07 |
๋ค์ ์ ๋ฆฌํ๋ C++ STL ์๋ฃ๊ตฌ์กฐ array (0) | 2020.08.06 |
๋ค์ ์ ๋ฆฌํ๋ C++ STL [ ๊ฐ์ ] (0) | 2020.08.05 |