STL Container - Sequence Container
STL Container๋ ๊ฐ์ ํ์ ์ ์ฌ๋ฌ ๊ฐ์ฒด๋ฅผ ์ ์ฅํ๋ ์ผ์ข ์ ์งํฉ์ด๋ผ ํ ์ ์๋ค. ์ปจํ ์ด๋๋ class template์ผ๋ก, ์ปจํ ์ด๋ ๋ณ์๋ฅผ ์ ์ธํ ๋ ์ปจํ ์ด๋์ ํฌํจํ ์์์ ํ์ ์ ๋ช ์ํ ์ ์๋ค. ์ปจํ ์ด๋์๋ ๋ณต์ฌ ์์ฑ๊ณผ ๋์ ์ ํ ์ ์๋ ํ์ ์ ๊ฐ์ฒด๋ง์ ์ ์ฅํ ์ ์์ผ๋ฉฐ, ์์์ ์ถ๊ฐ ๋ฐ ์ ๊ฑฐ๋ฅผ ํฌํจํ ๋ค์ํ ์์ ์ ๋์์ฃผ๋ ์ฌ๋ฌ ๋ฉค๋ฒ ํจ์๋ฅผ ํฌํจํ๊ณ ์๋ค.
STL Sequence Container
๋ฐ์ดํฐ๋ฅผ ์ ํ์ผ๋ก ์ ์ฅํ๋ฉฐ, ํน๋ณํ ์ ์ฝ์ด๋ ๊ท์น์ด ์๋ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์ปจํ ์ด๋์ด๋ค. ์ํ์ค ์ปจํ ์ด๋์์๋ ์ฝ์ ๋ ์์์ ์์๊ฐ ๊ทธ๋๋ก ์ ์ง๋๋ค.
๋ชจ๋ ์์๊ฐ ์ง์ ์์๋๋ก ๋ฐฐ์น๋์ด ์์ด์ผํ๋ค.
๋ฐ๋ณต์๊ฐ ์ต์ํ ์๋ฐฉํฅ ๋ฐ๋ณต์(forward iterator) ์ด์์ด์ด์ผํ๋ค.
์ํ์ค ์ปจํ ์ด๋์ ์์๋ค์ ๋ช ํํ ์์๋ฅผ ๊ฐ์ง๋ฏ๋ก, ํน์ ์์น๋ฅผ ์ฐธ์กฐํ๋ ์ฐ์ฐ์ด ๊ฐ๋ฅํด์ผํ๋ค.
vector
vector ์ปจํ
์ด๋๋ ๋ํ์ ์ธ ์ํ์ค ์ปจํ
์ด๋๋ก ๋ฐฐ์ด๊ณผ ๋น์ทํ์ฌ ์ฌ์ฉ์ด ์ฌ์ฐ๋ฉฐ ์์ฃผ ์ฌ์ฉ๋๋ค. vector๋ ์์ ์ ๊ทผ ๋ฐ๋ณต์(Random Access Iterator)๋ฅผ ์ง์ํ๋ ๋ฐฐ์ด ๊ธฐ๋ฐ ์ปจํ
์ด๋์ด๋ค. vector์ ๊ฐ์ฅ ํฐ ํน์ง ์ค ํ๋๋ ์์๊ฐ ํ๋์ ๋ฉ๋ชจ๋ฆฌ ๋ธ๋ก์ ์ฐ์ํ๊ฒ ์ ์ฅ๋๋ค๋ ๊ฒ์ด๋ค. vector๋ ์์๊ฐ ์ถ๊ฐ๋๊ฑฐ๋ ์ญ์ ๋ ๋๋ง๋ค ์๋์ผ๋ก ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌํ ๋นํ์ฌ ํฌ๊ธฐ๋ฅผ ์ฌํ ๋นํ์ฌ ํฌ๊ธฐ๋ฅผ ๋์ ์ผ๋ก ๋ณ๊ฒฝํ๋ค. ๋ฉ๋ชจ๋ฆฌ ํ ๋น ํฌ๊ธฐ๋ฅผ ์ ์ ์๊ฒ capacity() ํจ์๋ฅผ ์ ๊ณตํ๋ฉฐ ํ๋ฒ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ ์ ์๋ reserve() ํจ์๋ ์ ๊ณต๋๋ค. ์์๊ฐ ์ฐ์ํ๊ฒ ์ ์ฅ๋๋ฏ๋ก []
์ฐ์ฐ์ ๋๋ at ์ผ๋ก ์ฝ๊ธฐ์๋ ๋น ๋ฅด์ง๋ง insert(), erase(), push_back() ๋ฑ์ ๋นํจ์จ์ ์ผ๋ก ๋์ํ๋ค.
์์ฑ์ ์ธ์๋ก๋ ๋ฒกํฐ ์ปจํ ์ด๋์ ์ด๊ธฐ ํฌ๊ธฐ๋ฅผ ์ ๋ฌํ๋ฉฐ, ์๋ตํ๋ฉด ์์๋ฅผ ๊ฐ์ง์ง ์๋ ๋น ๋ฒกํฐ๋ฅผ ์์ฑํ๋ค.
์์ฑ์
์์ฑ์
์ค๋ช
vector v
v๋ ๋น ์ปจํ ์ด๋
vector v(n)
v๋ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ด๊ธฐํ๋ n๊ฐ์ ์์๋ฅผ ๊ฐ๋๋ค.
vector v(n,x)
v๋ x ๊ฐ์ผ๋ก ์ด๊ธฐํ๋ n๊ฐ์ ์์๋ฅผ ๊ฐ๋๋ค.
vector v(v2)
v๋ v2 ์ปจํ ์ด๋์ ๋ณต์ฌ๋ณธ์ด๋ค.(๋ณต์ฌ ์์ฑ์ ํธ์ถ)
vector v(a,b)
v๋ ๋ฐ๋ณต์ ๊ตฌ๊ฐ [b,e)๋ก ์ด๊ธฐํ๋ ์์๋ฅผ ๊ฐ๋๋ค.
๋ฉค๋ฒํจ์
ํจ์
์ค๋ช
v.assign(n,x)
v์ x ๊ฐ์ผ๋ก n๊ฐ์ ์์๋ฅผ ํ ๋นํ๋ค.
v.assign(a,b)
v๋ฅผ ๋ฐ๋ณต์ ๊ตฌ๊ฐ [a,b)๋ก ํ ๋น
v.at(i)
v์ i๋ฒ์งธ ์์๋ฅผ ์ฐธ์กฐ
v.front()
v์ ์ฒซ ๋ฒ์งธ ์์๋ฅผ ์ฐธ์กฐํ๋ค.
v.back()
v์ ๋ง์ง๋ง ์์๋ฅผ ์ฐธ์กฐ
v.capacity()
v์ ํ ๋น๋ ๊ณต๊ฐ์ ํฌ๊ธฐ
v.clear()
v์ ๋ชจ๋ ์์๋ฅผ ์ ๊ฑฐ
v.empty()
v๊ฐ ๋น์๋์ง ์กฐ์ฌ
p=v.begin()
p๋ v์ ์ฒซ ์์๋ฅผ ๊ฐ๋ฆฌํจ๋ค.
p=v.end()
p๋ v์ ๋์ ํ์ํ๋ ๋ฐ๋ณต์
q=v.erase(p)
p๊ฐ ๊ฐ๋ฆฌํค๋ ์์๋ฅผ ์ ๊ฑฐํ๋ค. q๋ ๋ค์ ์์๋ฅผ ๊ฐ๋ฆฌํจ๋ค.
q=v.erase(b,e)
๋ฐ๋ณต์ ๊ตฌ๊ฐ [b,e)์ ๋ชจ๋ ์์๋ฅผ ์ ๊ฑฐํ๋ค. q๋ ๋ค์ ์์๋ฅผ ๊ฐ๋ฆฌํจ๋ค.
q=v.insert(p,x)
p๊ฐ ๊ฐ๋ฆฌํค๋ ์์น์ x ๊ฐ์ ์ฝ์ ํ๋ค. q๋ ์ฝ์ ํ ์์๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ฐ๋ณต์๋ค.
v.insert(p,n,x)
p๊ฐ ๊ฐ๋ฆฌํค๋ ์์น์ n๊ฐ์ x ๊ฐ์ ์ฝ์ ํ๋ค.
v.insert(p,b,e)
p๊ฐ ๊ฐ๋ฆฌํค๋ ์์น์ ๋ฐ๋ณต์ ๊ตฌ๊ฐ [b,e)์ ์์๋ฅผ ์ฝ์ ํ๋ค.
x=v.max_size()
x๋ v๊ฐ ๋ด์ ์ ์๋ ์ต๋ ์์์ ๊ฐ์(๋ฉ๋ชจ๋ฆฌ์ ํฌ๊ธฐ)
v.pop_back()
v์ ๋ง์ง๋ง ์์๋ฅผ ์ ๊ฑฐํ๋ค.
v.push_back()
v์ ๋์ x๋ฅผ ์ถ๊ฐํ๋ค.
p=v.rbegin()
p๋ v์ ์ญ ์์ฐจ์ด์ ์ฒซ ์์๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ฐ๋ณต์๋ค.
p=v.rend()
p๋ v์ ์ญ ์์ฐจ์ด์ ๋์ ํ์ํ๋ ๋ฐ๋ณต์
v.reserve(n)
n๊ฐ์ ์์๋ฅผ ์ ์ฅํ ๊ณต๊ฐ์ ์์ฝํ๋ค.
v.resize(n)
v์ ํฌ๊ธฐ๋ฅผ n์ผ๋ก ๋ณ๊ฒฝํ๊ณ ํ์ฅ๋๋ ๊ณต๊ฐ์ ๊ฐ์ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ด๊ธฐํ ํ๋ค.
v.resize(n,x)
v์ ํฌ๊ธฐ๋ฅผ n์ผ๋ก ๋ณ๊ฒฝํ๊ณ ํ์ฅ๋๋ ๊ณต๊ฐ์ ๊ฐ์ x ๊ฐ์ผ๋ก ์ด๊ธฐํํ๋ค.
v.size()
v์ ์์ ๊ฐฏ์
v.swap(v2)
v์ v2๋ฅผ swapํ๋ค.
์์
์ฌ๊ธฐ์ v.size()๋งํผ for๋ฌธ์ ์คํํ๋ ค๋ฉด v.size()์ ํ์ ๊ณผ i ๊ฐ ๊ฐ์์ผ ํ๋ค.
vector<int>::size_type
: ๋ฒกํฐ์ size ์ ๋ฐํ ํ์ ์ ๊ฐ์ ธ์จ๋ค (unsigned int)
deque
depue๋ double-ended queue๋ฅผ ์๋ฏธํ๋ฉฐ, ์๋ฐฉํฅ ํ์ด๋ค. ์ปจํ ์ด๋์ ์ ๋์์ ๋น ๋ฅด๊ฒ ์์๋ฅผ ์ฝ์ ํ๊ฑฐ๋ ์ญ์ ํ ์ ์๋ค.
๊ตฌ์กฐ
์์ฑ์
์์ฑ์
deque dq
dq๋ ๋น ์ปจํ ์ด๋์ด๋ค.
deque dq(n)
dq๋ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ด๊ธฐํ๋ n๊ฐ์ ์์๋ฅผ ๊ฐ๋๋ค.
deque dq(n, x)
dq๋ x ๊ฐ์ผ๋ก ์ด๊ธฐํ๋ n๊ฐ์ ์์๋ฅผ ๊ฐ๋๋ค.
deque dq(dq2)
dq๋ dq2 ์ปจํ ์ด๋์ ๋ณต์ฌ๋ณธ์ด๋ค
deque dq(b,e)
dq๋ ๋ฐ๋ณต์ ๊ตฌ๊ฐ [b,e)๋ก ์ด๊ธฐํ๋ ์์๋ฅผ ๊ฐ๋๋ค.
Member Function
๋ฉค๋ฒ ํจ์
dq.assign(n,x)
dq์ x ๊ฐ์ผ๋ก n๊ฐ์ ์์๋ฅผ ํ ๋นํ๋ค.
dq.assign(b,e)
dq๋ฅผ ๋ฐ๋ณต์ ๊ตฌ๊ฐ [b,e)๋ก ํ ๋นํ๋ค.
dq.back()
dq์ ๋ง์ง๋ง ์์๋ฅผ ์ฐธ์กฐํ๋ค.
p=lt.begin()
p๋ dq์ ์ฒซ ์์๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ฐ๋ณต์๋ค
dq.clear()
dq์ ๋ชจ๋ ์์๋ฅผ ์ ๊ฑฐํ๋ค.
dq.empty()
dq๊ฐ ๋น์๋์ง ์กฐ์ฌํ๋ค.
p=dq.end()
p๋ dq์ ๋์ ํ์ํ๋ ๋ฐ๋ณต์๋ค
q=dq.erase(p)
p๊ฐ ๊ฐ๋ฆฌํค๋ ์์๋ฅผ ์ ๊ฑฐํ๋ค. q๋ ๋ค์ ์์๋ฅผ ๊ฐ๋ฆฌํจ๋ค.
q= dq.erase(b,e)
๋ฐ๋ณต์ ๊ตฌ๊ฐ [b,e)์ ๋ชจ๋ ์์๋ฅผ ์ ๊ฑฐํ๋ค. q๋ ๋ค์ ์์๋ค
dq.front()
dq์ ์ฒซ ๋ฒ์งธ ์์๋ฅผ ์ฐธ์กฐํ๋ค.
q=dq.insert(p,x)
p๊ฐ ๊ฐ๋ฆฌํค๋ ์์น์ x ๊ฐ์ ์ฝ์ ํ๋ค. q๋ ์ฝ์ ํ ์์๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ฐ๋ณต์๋ค
dq.insert(p,n,x)
p๊ฐ ๊ฐ๋ฆฌํค๋ ์์น์ n ๊ฐ์ x ๊ฐ์ ์ฝ์ ํ๋ค.
dq.insert(p,b,e)
p๊ฐ ๊ฐ๋ฆฌํค๋ ์์น์ ๋ฐ๋ณต์ ๊ตฌ๊ฐ [b,e)์ ์์๋ฅผ ์ฝ์ ํ๋ค.
x=dq.max_size()
x๋ dq๊ฐ ๋ด์ ์ ์๋ ์ต๋ ์์์ ๊ฐ์
dq.pop_back()
dq์ ๋ง์ง๋ง ์์๋ฅผ ์ ๊ฑฐํ๋ค.
dq.pop_front()
dq์ ์ฒซ๋ฒ์งธ ์์๋ฅผ ์ ๊ฑฐํ๋ค.
dq.push_back(x)
dq์ ๋์ x๋ฅผ ์ถ๊ฐํ๋ค.
dq.push_front(x)
dq์ ์์ชฝ์ x๋ฅผ ์ถ๊ฐํ๋ค.
p=dq.rbegin()
p๋ dq์ ์ญ ์์ฐจ์ด์ ์ฒซ ์์๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ฐ๋ณต์๋ค
p=dq.rend()
p๋ dq์ ์ญ ์์ฐจ์ด์ ์ฒซ ์์๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ฐ๋ณต์๋ค
dq.resize(n)
dq์ ํฌ๊ธฐ๋ฅผ n์ผ๋ก ๋ณ๊ฒฝํ๊ณ ํ์ฅ๋๋ ๊ณต๊ฐ์ ๊ฐ์ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ด๊ธฐํํ๋ค.
dq.resize(n,x)
dq์ ํฌ๊ธฐ๋ฅผ n์ผ๋ก ๋ณ๊ฒฝํ๊ณ ํ์ฅ๋๋ ๊ณต๊ฐ์ ๊ฐ์ x ๋ก ์ด๊ธฐํํ๋ค.
dq.size()
dq ์์์ ๊ฐฏ์๋ค
dq.swap(dq2)
dq์ dq2๋ฅผ swap ํ๋ค.
์์
list
STL List๋ double linked list, forward_list๋ single linked list์ ๊ฐ๋ค.
list๋ ๋ ธ๋ ๊ธฐ๋ฐ ์ปจํ ์ด๋๋ก
at()
๊ณผ[]
์ฐ์ฐ์๊ฐ ์์ผ๋ฉฐ ์์ ์ ๊ทผ ๋ฐ๋ณต์๊ฐ ์๋ ์๋ฐฉํฅ ๋ฐ๋ณต์(++
,--
)๋ฅผ ์ ๊ณต์ค๊ฐ์ ์์๋ฅผ ์ฝ์ (insert), ์ ๊ฑฐ(erase) ํ๋๋ผ๋ ์์ ์๊ฐ ๋ณต์ก๋(O(n))์ ์ํ ์ฑ๋ฅ
๊ตฌ์กฐ
์์ฑ์
์์ฑ์
list lt
lt๋ ๋น ์ปจํ ์ด๋์ด๋ค.
list lt(n)
lt๋ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ด๊ธฐํ๋ n๊ฐ์ ์์๋ฅผ ๊ฐ๋๋ค.
list lt(n, x)
lt๋ x ๊ฐ์ผ๋ก ์ด๊ธฐํ๋ n๊ฐ์ ์์๋ฅผ ๊ฐ๋๋ค.
list lt(lt2)
lt๋ lt2 ์ปจํ ์ด๋์ ๋ณต์ฌ๋ณธ์ด๋ค
list lt(b,e)
lt๋ ๋ฐ๋ณต์ ๊ตฌ๊ฐ [b,e)๋ก ์ด๊ธฐํ๋ ์์๋ฅผ ๊ฐ๋๋ค.
Member Function
๋ฉค๋ฒ ํจ์
lt.assign(n,x)
lt์ x ๊ฐ์ผ๋ก n๊ฐ์ ์์๋ฅผ ํ ๋นํ๋ค.
lt.assign(b,e)
lt๋ฅผ ๋ฐ๋ณต์ ๊ตฌ๊ฐ [b,e)๋ก ํ ๋นํ๋ค.
lt.back()
lt์ ๋ง์ง๋ง ์์๋ฅผ ์ฐธ์กฐํ๋ค.
p=lt.begin()
p๋ lt์ ์ฒซ ์์๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ฐ๋ณต์๋ค
lt.clear()
lt์ ๋ชจ๋ ์์๋ฅผ ์ ๊ฑฐํ๋ค.
lt.empty()
lt๊ฐ ๋น์๋์ง ์กฐ์ฌํ๋ค.
p=lt.end()
p๋ lt์ ๋์ ํ์ํ๋ ๋ฐ๋ณต์๋ค
q=lt.erase(p)
p๊ฐ ๊ฐ๋ฆฌํค๋ ์์๋ฅผ ์ ๊ฑฐํ๋ค. q๋ ๋ค์ ์์๋ฅผ ๊ฐ๋ฆฌํจ๋ค.
q= lt.erase(b,e)
๋ฐ๋ณต์ ๊ตฌ๊ฐ [b,e)์ ๋ชจ๋ ์์๋ฅผ ์ ๊ฑฐํ๋ค. q๋ ๋ค์ ์์๋ค
lt.front()
lt์ ์ฒซ ๋ฒ์งธ ์์๋ฅผ ์ฐธ์กฐํ๋ค.
q=lt.insert(p,x)
p๊ฐ ๊ฐ๋ฆฌํค๋ ์์น์ x ๊ฐ์ ์ฝ์ ํ๋ค. q๋ ์ฝ์ ํ ์์๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ฐ๋ณต์๋ค
lt.insert(p,n,x)
p๊ฐ ๊ฐ๋ฆฌํค๋ ์์น์ n ๊ฐ์ x ๊ฐ์ ์ฝ์ ํ๋ค.
lt.insert(p,b,e)
p๊ฐ ๊ฐ๋ฆฌํค๋ ์์น์ ๋ฐ๋ณต์ ๊ตฌ๊ฐ [b,e)์ ์์๋ฅผ ์ฝ์ ํ๋ค.
x=lt.max_size()
x๋ lt๊ฐ ๋ด์ ์ ์๋ ์ต๋ ์์์ ๊ฐ์
lt.merge(lt2)
lt2๋ฅผ lt๋ก ํฉ๋ณ ์ ๋ ฌํ๋ค.
lt.merge(lt2, pred)
lt2๋ฅผ lt๋ก ํฉ๋ณ ์ ๋ ฌํ๋ค. pred(์กฐ๊ฑด์)๋ฅผ ๊ฐ์ง๋์ผ๋ก ํฉ๋ณํ๋ค.
lt.pop_back()
lt์ ๋ง์ง๋ง ์์๋ฅผ ์ ๊ฑฐํ๋ค.
lt.pop_front()
lt์ ์ฒซ๋ฒ์งธ ์์๋ฅผ ์ ๊ฑฐํ๋ค.
lt.push_back(x)
lt์ ๋์ x๋ฅผ ์ถ๊ฐํ๋ค.
lt.push_front(x)
lt์ ์์ชฝ์ x๋ฅผ ์ถ๊ฐํ๋ค.
p=lt.rbegin()
p๋ lt์ ์ญ ์์ฐจ์ด์ ์ฒซ ์์๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ฐ๋ณต์๋ค
lt.remove(x)
x ์์๋ฅผ ๋ชจ๋ ์ ๊ฑฐํ๋ค.
lt.remove_if(pred)
pred(๋จํญ ์กฐ๊ฑด์)๊ฐ '์ฐธ'์ธ ๋ชจ๋ ์์๋ฅผ ์ ๊ฑฐํ๋ค.
p=lt.rend()
p๋ lt์ ์ญ ์์ฐจ์ด์ ์ฒซ ์์๋ฅผ ๊ฐ๋ฆฌํค๋ ๋ฐ๋ณต์๋ค
lt.resize(n)
lt์ ํฌ๊ธฐ๋ฅผ n์ผ๋ก ๋ณ๊ฒฝํ๊ณ ํ์ฅ๋๋ ๊ณต๊ฐ์ ๊ฐ์ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ด๊ธฐํํ๋ค.
lt.reverse()
lt ์์ฐจ์ด์ ๋ค์ง๋๋ค.
lt.size()
lt ์์์ ๊ฐฏ์๋ค
lt.sort()
lt์ ๋ชจ๋ ์์๋ฅผ ์ค๋ฆ ์ฐจ์ ์ผ๋ก ์ ๋ ฌํ๋ค.
lt.sort(pred)
lt์ ๋ชจ๋ ์์๋ฅผ pred(์กฐ๊ฑด์)๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ๋ ฌํ๋ค.
lt.splice(p, lt2)
p๊ฐ ๊ฐ๋ฆฌํค๋ ์์น์ lt2์ ๋ชจ๋ ์์๋ฅผ ์๋ผ ๋ถ์ธ๋ค.
lt.splice(p, lt2, q)
p๊ฐ ๊ฐ๋ฆฌํค๋ ์์น์ lt2์ q๊ฐ ๊ฐ๋ฆฌํค๋ ์์๋ฅผ ์๋ผ ๋ถ์ธ๋ค.
lt.splice(p, lt2, b, e)
p๊ฐ ๊ฐ๋ฆฌํค๋ ์์น์ lt2์ ์์ฐจ์ด [b,e)๋ฅผ ์๋ผ ๋ถ์ธ๋ค.
lt.swap(lt2)
lt์ lt2๋ฅผ swap ํ๋ค.
lt.unique()
์ธ์ ํ ์์์ ๊ฐ์ด ๊ฐ๋ค๋ฉด ์ ์ผํ ์์์ ์์ฐจ์ด๋ก ๋ง๋ ๋ค.
lt.unique(pred)
์ธ์ ํ ์์๊ฐ pred(์ดํญ ์กฐ๊ฑด์)์ ๊ธฐ์ค์ ๋ง๋ค๋ฉด ์ ์ผํ ์์์ ์์ฐจ์ด๋ก ๋ง๋ ๋ค
์์
forward_list
<forward_list>
ํค๋์ ์กด์ฌํ๋ค.๋จ์์ฐ๊ฒฐ๋ฆฌ์คํธ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์ด์ฉํ์ฌ ๋ง๋ sequence container
๋จ๋ฐฉํฅ๋ฆฌ์คํธ๋ก๋ง ์ถฉ๋ถํ ๊ฒฝ์ฐ์ ์ฌ์ฉ(ํ ๋ฐฉํฅ์ผ๋ก๋ง ์ด๋ ๊ฐ๋ฅํ๋ค.)
std::list
๋ณด๋ค ์ฝ์ /์ญ์ ์๋๊ฐ ๋ ๋น ๋ฅด๋ฉฐ, ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ ์ ๊ฒ ์ฌ์ฉํ๋ค.(์ฐจ์ด๋ ํฌ์ง ์๋ค.)
๊ตฌ์กฐ
ํน์ง
ํน๋ณํ ์ด์ ๊ฐ ์๋ค๋ฉด
forward_list
๋ ๊ธฐ์กด์list
์ ์ค๊ณ์ ๋ง์ถ๋ค.std::list
์insert
์erase
๋ฅผforward_list
์์ ๊ตฌํ์ด ๋ณต์กํด์ง๊ณ ์ฑ๋ฅ ์ธก๋ฉด์์ ์ข์ง ์์ ์ ๊ณตํ์ง ์๋๋ค.๋ค๋ฅธ STL์ container์ ์๋
size
ํจ์๋ฅผ ์ ๊ณตํ์ง ์๋๋ค. ์ด์ ๋ ์์ ์๋ฅผ ๋ณด์กดํ๋ ๋ฉค๋ฒ๋ฅผ๊ฐ์ง๊ณ ์์ผ๋ฉด C์ธ์ด์์ ๊ตฌํํ ๊ฒ๊ณผ ๋น๊ตํด์ ๋ถํ์ํ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ค. ๋ง์ฝ ์ด๋ฐ ๋ฉค๋ฒ๋ฅผ ๊ฐ์ง๊ณ ์์ง ์์ผ๋ฉด์ size ํจ์๋ฅผ ์ง์ํ๋ฉด ํธ์ถํ ๋๋ง๋ค ๋ชจ๋ ์์๋ฅผ ์ธ์ด์ผ ํ๋ฏ๋ก ๊ณ์ฐ๋์ด O(N)์ด ๋๋ค.
๋ฉค๋ฒ ๋ณ์
Member types
Member type
Definition
value_type
T
allocator_type
ํ ๋น์
size_type
๋ถํธ ์๋ ์ ์(unsigned int) ํ์
(์ผ๋ฐ์ ์ผ๋ก std::size_t
)
difference_type
๋ถํธ ์๋ ์ ์(signed int) ํ์
(๋ณดํต std::ptrdiff_t
)
reference
value_type&
const_reference
const value_type&
pointer
std::allocator_traits<Allocator>::pointer
const_pointer
std::allocator_traits<Allocator>::const_pointer
iterator
ForwardIterator
const_iterator
์์(constant) ์๋ฐฉํฅ ๋ฐ๋ณต์(iterator)
Member Function
Member Function
์ค๋ช
assign
์ปจํ ์ด๋์ ๊ฐ์ ํ ๋น
befor_begin
cbefore_begin
์์ํ๊ธฐ ์ ์ ์์์ ๋ฐ๋ณต์(iterator)๋ฅผ ๋ฐํ
begin
cbegin
์ฒซ๋ฒ์งธ ์์์ ๋ฐ๋ณต์(iterator)๋ฅผ ๋ฐํ
end
cend
๋ง์ง๋ง ์์๋ก์ ๋ฐ๋ณต์(iterator) ๋ฐํ
empty
ํ์ฌ ์ปจํ ์ด๋๊ฐ ๋น์ด์๋์ง ํ์ธ
max_size
์์์ ์ต๋ ๊ฐ์๋ฅผ ๋ฐํ
clear
๋ชจ๋ ์ญ์
resize
์ฌ์ด์ฆ ๋ณ๊ฒฝ
insert_after
์ฝ์
erase_after
์ญ์
push_front
์๋ก์ด ์์๋ฅผ ์์ ์ฝ์
pop_front
์ฒซ๋ฒ์งธ ์์ ์ญ์
swap
์์๋ค์ ์๋ก ๊ตํ
remove
remove_if
์กฐ๊ฑด์ญ์
unique
์ค๋ณต์์ ์ญ์
reverse
์ ํ(์ญ์ผ๋ก ๋ฐ๊ฟ)
merge
๋ณํฉ
sort
์ ๋ ฌ
splice_after
ํด๋น ์์๋ฅผ ์๋ณธ ์๋ฐฉํฅ ๋ฆฌ์คํธ์์ ์ญ์ ํ๊ณ , ๋์ ์๋ฐฉํฅ ๋ฆฌ์คํธ์ ์ง์ ๋ ์์น์ ์ฝ์
์์
์ฐธ์กฐํ์ด์ง
Last updated