๋‹ค์‹œ ์ •๋ฆฌํ•˜๋Š” C++ STL ์ž๋ฃŒ๊ตฌ์กฐ list

2020. 8. 9. 17:18ใ†PROGRAMMING/C++ STL

 

 

 

[ STL ์ž๋ฃŒ๊ตฌ์กฐ list ]

 

STL์˜ list๋Š” ์ด์ค‘ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์ด๋‹ค.

์›์†Œ๋ฅผ ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์”ฉ ์•ž ๋’ค๋กœ ์ˆœํšŒํ•  ์ˆ˜ ์žˆ๋Š” ์–‘๋ฐฉํ–ฅ ๋ฐ˜๋ณต์ž(bidirectional iterator)๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

์–ด๋Š ์œ„์น˜์—์„œ๋“  ์ƒ์ˆ˜ ์‹œ๊ฐ„์— ์›์†Œ๋ฅผ ์‚ฝ์ž… & ์‚ญ์ œํ•  ์ˆ˜ ์žˆ๋‹ค.vector์™€ ๋‹ฌ๋ฆฌ ํ•ญ์ƒ ์ƒ์ˆ˜ ์‹œ๊ฐ„์— ์›์†Œ๋ฅผ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๋žœ๋ค ๋ฐ˜๋ณต์ž๋ฅผ ์ œ๊ณตํ•˜์ง€๋Š” ์•Š์ง€๋งŒ,๋งŽ์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ•จ์ˆ˜๋Š” ์ˆœ์ฐจ์ ์œผ๋กœ ์•ก์„ธ์Šคํ•  ์ˆ˜๋งŒ ์žˆ์œผ๋ฉด ์ถฉ๋ถ„ํ•˜๋‹ค.

 

 

[ STL list ์›์†Œ ์ถ”๊ฐ€ ]

list๋Š” ์–‘๋ฐฉํ–ฅ์œผ๋กœ ์›์†Œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—

vector์™€ ๋‹ฌ๋ฆฌ ์ปจํ…Œ์ด๋„ˆ์˜ ์•ž, ๋’ค๋กœ ์›์†Œ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

[ STL list ์›์†Œ ์ œ๊ฑฐ ]

1. ์ „์—ญํ•จ์ˆ˜ remove

์ „์—ญํ•จ์ˆ˜ remove

4๋ผ๋Š” ์›์†Œ๊ฐ€ ์ œ๊ฑฐ๋์ง€๋งŒ, remove() ํ•จ์ˆ˜๋Š” ์ œ๊ฑฐํ•˜๋ ค๋Š” ์›์†Œ๊ฐ€ ์–ด๋–ค ์ปจํ…Œ์ด๋„ˆ์˜ ์›์†Œ์ธ์ง€ ์•Œ ๋ฐฉ๋ฒ•์ด ์—†๋‹ค. 

์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ์ปจํ…Œ์ด๋„ˆ๋Š” ์„œ๋กœ ๋ชจ๋ฅด๋Š” ์‚ฌ์ด์ด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๋”ฐ๋ผ์„œ ์ผ๋‹จ ์ œ๊ฑฐํ•˜๋ ค๋Š” ๊ฐ’์ด ์žˆ๋‹ค๋ฉด ๊ทธ ๊ฐ’์„

์ปจํ…Œ์ด๋„ˆ์˜ ๋งˆ์ง€๋ง‰ ๊ฐ’์œผ๋กœ ์น˜ํ™˜ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์›์†Œ๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค.

 

 

2. ๋ฉค๋ฒ„ํ•จ์ˆ˜ remove

๋ฉค๋ฒ„ํ•จ์ˆ˜ remove

list์˜ remove() ๋ฉค๋ฒ„ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋‹ˆ, ์šฐ๋ฆฌ๊ฐ€ ์›ํ•˜๋Š” ๋Œ€๋กœ ์›์†Œ๊ฐ€ ์ œ๊ฑฐ๋๋‹ค.

list์˜ remove()๋Š” ๋ฉค๋ฒ„ ํ•จ์ˆ˜์ด๊ธฐ ๋•Œ๋ฌธ์— list์˜ ํŠน์„ฑ์„ ๊ทธ๋Œ€๋กœ ๋‹ค ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

๋”ฐ๋ผ์„œ STL์—์„œ ๊ฐ™์€ ๊ธฐ๋Šฅ์˜ ์ „์—ญํ•จ์ˆ˜์™€ ๋ฉค๋ฒ„ ํ•จ์ˆ˜๊ฐ€ ์žˆ๋‹ค๋ฉด

๋‘ ๋งํ•  ๊ฒƒ๋„ ์—†์ด ๋ฉค๋ฒ„ํ•จ์ˆ˜๋ฅผ ์„ ํƒํ•ด์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

 

3. ๋ฉค๋ฒ„ํ•จ์ˆ˜ erase

list์˜ erase() ๋ฉค๋ฒ„ ํ•จ์ˆ˜๋Š” ๋ฐ˜๋ณต์ž๋ฅผ ํ†ตํ•ด์„œ ์›์†Œ๋ฅผ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

 

[ STL vector์™€ list ]

 

1. vector๋Š” ์—ฐ์†๋œ ๋ฉ”๋ชจ๋ฆฌ์ง€๋งŒ, (๋ฐฐ์—ด ๊ธฐ๋ฐ˜)

list์˜ ๋ฉ”๋ชจ๋ฆฌ๋Š” ์—ฐ์†๋˜์–ด์žˆ์ง€ ์•Š๋‹ค. (๋…ธ๋“œ ๊ธฐ๋ฐ˜)

 

2. vector๋Š” ๋น ๋ฅธ ๋ฐ์ดํ„ฐ ์ฐธ์กฐ์— ์œ ๋ฆฌํ•˜๋‹ค.

[] ์—ฐ์‚ฐ์ž๊ฐ€ ์˜ค๋ฒ„ ๋กœ๋”ฉ๋ผ์žˆ์–ด ์›ํ•˜๋Š” ์›์†Œ์— ๋ฐ”๋กœ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

list๋Š” ๋ฐ˜๋ณต์ž๋ฅผ ํ†ตํ•œ ์ˆœ์ฐจ ํƒ์ƒ‰๋งŒ ๊ฐ€๋Šฅํ•˜๋‹ค. 

 

3. ๋นˆ๋ฒˆํ•œ ์‚ฝ์ž…, ์‚ญ์ œ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋Š” list๊ฐ€ ์œ ๋ฆฌํ•˜๋‹ค.

vector๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ •์ฑ…์— ๋”ฐ๋ผ ๋ฉ”๋ชจ๋ฆฌ์˜ ๋นˆ๋ฒˆํ•œ ํ• ๋‹น, ์žฌํ• ๋‹น์ด ์ผ์–ด๋‚  ์ˆ˜๋„ ์žˆ๊ณ 

ํ• ๋‹นํ•œ ๋ฉ”๋ชจ๋ฆฌ์— ๋น„ํ•ด ํ›จ์”ฌ ์ ์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ๋„ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค.

๋ฐ˜๋ฉด, list๋Š” ๋…ธ๋“œ ๊ธฐ๋ฐ˜์ด๊ธฐ ๋•Œ๋ฌธ์— ์›์†Œ์˜ ๊ฐœ์ˆ˜๋งŒํผ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.