02. [C++] STL (Standard Template Library) - List

2019. 6. 21. 05:43ใ†PROGRAMMING/C++ STL

 

List

 

ํ‘œ์ค€ ์‹œํ€€์Šค ์ปจํ…Œ์ด๋„ˆ.

๋…ธ๋“œ ๊ธฐ๋ฐ˜ (์–‘๋ฐฉํ–ฅ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ)

๋…ธ๋“œ ๊ธฐ๋ฐ˜์ด๊ธฐ ๋•Œ๋ฌธ์— ์ธ๋ฑ์Šค ์ ‘๊ทผ์ด ์•ˆ๋˜๊ณ , ์˜ค๋กœ์ง€ ์ˆœ์ฐจ ์ ‘๊ทผ๋งŒ ํ—ˆ์šฉํ•œ๋‹ค.

(ํƒ์ƒ‰์— ๋ถˆ๋ฆฌํ•˜๋‹ค.)

 

๋ฐฐ์—ด๊ณผ ๋‹ฌ๋ฆฌ ํฌํ™”์ƒํƒœ๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค.

(์žฌํ• ๋‹น๊ณผ ๋ณต์‚ฌ๊ฐ€ ํ•„์š”์—†์–ด์„œ, ๋นˆ๋ฒˆํ•œ ์‚ฝ์ž…๊ณผ ์‚ญ์ œ์— ์œ ๋ฆฌํ•˜๋‹ค.)

 

 

 

[ list์˜ ์„ ์–ธ ]

list ํ—ค๋”๋ฅผ ํฌํ•จ์‹œํ‚จ ํ›„,

list<์ž๋ฃŒํ˜•> '๋ณ€์ˆ˜ ์ด๋ฆ„'์„ ํ†ตํ•ด ์„ ์–ธ.

์ž๋ฃŒํ˜• ์œ„์น˜์—๋Š” ๊ตฌ์กฐ์ฒด๋‚˜ ํด๋ž˜์Šค๋„ ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

 

 

 

[ list์˜ ์›์†Œ ์‚ฝ์ž…๊ณผ ์‚ญ์ œ ]

push_back : ๋’ค์—์„œ ๋ถ€ํ„ฐ ์›์†Œ๋ฅผ ์‚ฝ์ž…ํ•œ๋‹ค.

push_front : ์•ž์—์„œ ๋ถ€ํ„ฐ ์›์†Œ๋ฅผ ์‚ฝ์ž…ํ•œ๋‹ค.

 

pop_back : ๊ฐ€์žฅ ๋’ค์— ์žˆ๋Š” ์›์†Œ๋ฅผ ํ˜„์žฌ list์—์„œ ์ œ๊ฑฐํ•œ๋‹ค.

pop_front : ๊ฐ€์žฅ ์•ž์— ์žˆ๋Š” ์›์†Œ๋ฅผ ํ˜„์žฌ list์—์„œ ์ œ๊ฑฐํ•œ๋‹ค.

 

size : list๊ฐ€ ์ €์žฅํ•˜๊ณ  ์žˆ๋Š” ํ˜„์žฌ ์›์†Œ์˜ ๊ฐœ์ˆ˜.

 

back : list์˜ ๋งจ ๋’ค์— ์žˆ๋Š” ์›์†Œ์˜ ๋ ˆํผ๋Ÿฐ์Šค๋ฅผ ๋ฐ˜ํ™˜.

front : list์˜ ๋งจ ์•ž์—์žˆ๋Š” ์›์†Œ์˜ ๋ ˆํผ๋Ÿฐ์Šค๋ฅผ ๋ฐ˜ํ™˜.

 

 

 

 

[ ๋ฐ˜๋ณต์ž๋ฅผ ์ด์šฉํ•œ list ์›์†Œ ์ˆœํšŒ ]

 

๋…ธ๋“œ๊ธฐ๋ฐ˜์ด๊ธฐ์— '์–‘๋ฐฉํ–ฅ ๋ฐ˜๋ณต์ž'๋ฅผ ์ œ๊ณตํ•œ๋‹ค.
์–‘๋ฐฉํ–ฅ ๋ฐ˜๋ณต์ž๋Š” ++, -- ์—ฐ์‚ฐ์„ ํ†ตํ•ด ์˜ค๋กœ์ง€ ์ˆœ์ฐจ์ ‘๊ทผ๋งŒ ํ—ˆ์šฉํ•œ๋‹ค.

 

 

[ ์–‘๋ฐฉํ–ฅ ๋ฐ˜๋ณต์ž๋ฅผ ์ด์šฉํ•œ ์ค‘๊ฐ„ ์‚ฝ์ž… ]

 

 

[ ์–‘๋ฐฉํ–ฅ ๋ฐ˜๋ณต์ž๋ฅผ ์ด์šฉํ•œ ์ค‘๊ฐ„ ์ œ๊ฑฐ ]

 

 

 

 

 

[ list์˜ ๋ฉค๋ฒ„ํ•จ์ˆ˜ ์ •๋ฆฌ ]

push_back: ๋งจ ๋’ค์—์„œ๋ถ€ํ„ฐ ์›์†Œ ์‚ฝ์ž….
push_front: ๋งจ ์•ž์—์„œ๋ถ€ํ„ฐ ์›์†Œ ์‚ฝ์ž….

pop_back: ๋งจ ๋’ค์˜ ์›์†Œ ์ œ๊ฑฐ.
pop_front: ๋งจ ์•ž ์›์†Œ ์ œ๊ฑฐ.

front: ๋งจ ์•ž์˜ ์›์†Œ ๋ ˆํผ๋Ÿฐ์Šค ๋ฐ˜ํ™˜.
back: ๋งจ ๋’ค์˜ ์›์†Œ ๋ ˆํผ๋Ÿฐ์Šค ๋ฐ˜ํ™˜.

size: ํ˜„์žฌ ์ €์žฅํ•˜๊ณ  ์žˆ๋Š” ์›์†Œ์˜ ๊ฐœ์ˆ˜ (๋…ธ๋“œ์˜ ๊ฐœ์ˆ˜)
empty: ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ๋น„์—ˆ๋Š”์ง€ ์กฐ์‚ฌ. ๋น„์–ด์žˆ๋‹ค๋ฉด true๋ฅผ ๋ฐ˜ํ™˜.
swap: ๋‘ ์ปจํ…Œ์ด๋„ˆ์˜ ์ •๋ณด๋ฅผ ๊ตํ™˜.
clear: ๋ชจ๋“  ์›์†Œ ์ œ๊ฑฐ.

begin: ๋งจ ์•ž ์›์†Œ์˜ ์œ„์น˜์ •๋ณด(๋ฐ˜๋ณต์ž)๋ฅผ ๋ฐ˜ํ™˜.
end: ๋งˆ์ง€๋ง‰ ์›์†Œ ๋‹ค์Œ ์œ„์น˜์ •๋ณด(๋ฐ˜๋ณต์ž)๋ฅผ ๋ฐ˜ํ™˜.

insert: ์ค‘๊ฐ„ ์‚ฝ์ž….
erase: ์ค‘๊ฐ„ ์ œ๊ฑฐ.

 

reverse: ๋ชจ๋“  ์›์†Œ์˜ ์œ„์น˜๋ฅผ ๊ฑฐ๊พธ๋กœ ๋’ค๋ฐ”๊พผ๋‹ค.

 

 

list๋Š” sort๋ฅผ ๋ฉค๋ฒ„ํ•จ์ˆ˜๋กœ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

 

 

 

 

 

 

[ list VS vector ]

 

๊ตฌ๋ถ„ vector list
๋ฉ”๋ชจ๋ฆฌ ๋ฐฉ์‹ ๋ฐฐ์—ด ๊ธฐ๋ฐ˜ ๋…ธ๋“œ ๊ธฐ๋ฐ˜
๋ฐ˜๋ณต์ž ์ž„์˜ ์ ‘๊ทผ (์ธ๋ฑ์Šค) ์ˆœ์ฐจ ์ ‘๊ทผ
์šฉ๋„ ํƒ์ƒ‰ ๋นˆ๋ฒˆํ•œ ์‚ฝ์ž…, ์‚ญ์ œ
sort ํ•จ์ˆ˜ <algorithm>์—์„œ ์ œ๊ณต ๋ฉค๋ฒ„ ํ•จ์ˆ˜ ์ œ๊ณต
๊ณตํ†ต ํ‘œ์ค€ ์‹œํ€€์Šค ์ปจํ…Œ์ด๋„ˆ