STL Container - Associate Container
Associate Container(μ°κ΄ 컨ν μ΄λ)λ ν€μ κ°μ²λΌ κ΄λ ¨μλ λ°μ΄ν°λ₯Ό νλμ μμΌλ‘ μ μ₯νλ 컨ν μ΄λμ΄λ€. ν€μ κ°μ μ΄μ©νμ¬ μμλ€μ λν΄ λΉ λ₯Έ μ κ·Όμ΄ κ°λ₯νλ€. νμ§λ§ μ½μ λλ μμμ μμΉλ₯Ό μ§μ ν μ μλ€.
λ³΄ν΅ balanced binary search treeλ hash tableμ μ΄μ©νμ¬ κ΅¬ννλ€.
set & multiset
μ§ν©(set)μ μ μ₯νλ λ°μ΄ν° κ·Έ μ체λ₯Ό ν€λ‘ μ¬μ©νλ κ°μ₯ λ¨μν μ°κ΄ 컨ν μ΄λμ΄λ€. setμ λ¬λ¦¬ μ€λ¦μ°¨μμΌλ‘ μ λ ¬λ μμΉμ μμλ₯Ό μ½μ νλ―λ‘ κ²μμλκ° λ§€μ° λΉ λ₯΄λ€.
μ§ν©μμ ν€λ μ μΌν΄μΌνλ―λ‘, ν€μ μ€λ³΅μ νμ©νμ§ μλλ€.
λ©ν°μ§ν©(multiset)μ ν€μ μ€λ³΅μ νμ©νλ©°, κ°μ κ°μ μ¬λ¬λ² μ μ₯ν μ μλ€.
ꡬ쑰
μμ±μ
μμ±μ
μ€λͺ
set s
sλ λΉ μ»¨ν μ΄λ
set s(pred)
sλ λΉ μ»¨ν μ΄λλ‘ μ λ ¬ κΈ°μ€μ pred 쑰건μλ₯Ό μ¬μ©
set s(s2)
sλ s2 컨ν μ΄λμ 볡μ¬λ³Έμ΄λ€.(λ³΅μ¬ μμ±μ νΈμΆ)
set s(b,e)
sλ λ°λ³΅μ κ΅¬κ° [b,e)λ‘ μ΄κΈ°νλ μμλ₯Ό κ°λλ€.
set s(b,e,pred)
sλ λ°λ³΅μ κ΅¬κ° [b,e)λ‘ μ΄κΈ°νλ μμλ₯Ό κ°λλ€. μ λ ¬κΈ°μ€μ pred 쑰건μλ₯Ό μ΄μ©νλ€.
λ©€λ²ν¨μ
ν¨μ
μ€λͺ
s.clear()
sμ λͺ¨λ μμλ₯Ό μ κ±°
n=s.count(k)
μμ kμ κ°μλ₯Ό λ°ννλ€.
s.empty()
vκ° λΉμλμ§ μ‘°μ¬
p=s.begin()
pλ sμ 첫 μμλ₯Ό κ°λ¦¬ν¨λ€.
p=s.end()
pλ sμ λμ νμνλ λ°λ³΅μ
pr=s.equeal_range(k)
prλ μμ kμ λ°λ³΅μ ꡬκ°μΈ pair κ°μ²΄
q=s.erase(p)
pκ° κ°λ¦¬ν€λ μμλ₯Ό μ κ±°νλ€. qλ λ€μ μμλ₯Ό κ°λ¦¬ν¨λ€.
q=s.erase(b,e)
λ°λ³΅μ κ΅¬κ° [b,e)μ λͺ¨λ μμλ₯Ό μ κ±°νλ€. qλ λ€μ μμλ₯Ό κ°λ¦¬ν¨λ€.
p=s.find(k)
pλ kμμμ μμΉλ₯Ό κ°λ¦¬ν€λ λ°λ³΅μμ΄λ€.
pr=s.insert(k)
s 컨ν μ΄λμ kλ₯Ό μ½μ νλ€. prμ μ½μ ν μμλ₯Ό κ°λ¦¬ν€λ λ°λ³΅μμ μ±κ³΅ μ¬λΆμ boolμΈ pair κ°μ²΄μ΄λ€.
q=s.insert(p,x)
pκ° κ°λ¦¬ν€λ μμΉμ kκ°μ μ½μ νλ€. qλ μ½μ ν μμλ₯Ό κ°λ¦¬ν€λ λ°λ³΅μλ€.
s.insert(b,e)
λ°λ³΅μ κ΅¬κ° [b,e)μ μμλ₯Ό μ½μ νλ€.
pred = s.key_comp()
predλ sμ key μ λ ¬κΈ°μ€μΈ 쑰건μμ΄λ€.(key_compare νμ )
pred = s.value_comp()
predλ sμ value μ λ ¬κΈ°μ€μΈ 쑰건μμ΄λ€.(value_compare νμ )
p = s.lower_bound(k)
pλ kμ μμꡬκ°μ κ°λ¦¬ν€λ λ°λ³΅μμ΄λ€.
p = s.upper_bound(k)
pλ kμ λ ꡬκ°μ κ°λ¦¬ν€λ λ°λ³΅μμ΄λ€.
x=s.max_size()
xλ sκ° λ΄μ μ μλ μ΅λ μμμ κ°μ(λ©λͺ¨λ¦¬μ ν¬κΈ°)
p=s.rbegin()
pλ sμ μ μμ°¨μ΄μ 첫 μμλ₯Ό κ°λ¦¬ν€λ λ°λ³΅μλ€.
p=s.rend()
pλ sμ μ μμ°¨μ΄μ λμ νμνλ λ°λ³΅μ
s.size()
sμ μμ κ°―μ
s.swap(s2)
sμ s2λ₯Ό swapνλ€.
μ°κ΄ 컨ν
μ΄λλ μ λ ¬ κΈ°μ€μ΄ μμΌλ―λ‘ insert()
μ μν΄ μ½μ
λ μμλ μλ μ λ ¬λλ€. setμμ μμλ₯Ό keyλΌ νλ©°, μ΄ ν€λ₯Ό λΉκ΅νμ¬ λ΄λΆ μμλ₯Ό μ λ ¬νλ€.
μμ
set
multiset
map & multimap
mapμ ν€μ κ°μ μμΌλ‘ λ°μ΄ν°λ₯Ό κ΄λ¦¬νλ 컨ν μ΄λμ΄λ€. μ§ν© 컨ν μ΄λμ λ§μ°¬κ°μ§λ‘ μ λ ¬λ μμΉμ μμλ₯Ό μ½μ νλ―λ‘ κ²μ μλκ° λ§€μ° λΉ λ₯΄λ€.
mapμμ ν€λ μ μΌν΄μΌνλ―λ‘, νλμ ν€μ νλμ κ°λ§μ΄ μ°κ²°λ μ μλ€. multimapμ κ°μ μ€λ³΅μ νμ©νλ―λ‘, νλμ ν€μ μ¬λ¬ κ°μ κ°κ³Ό μ°κ²°λ μ μλ€.
ꡬ쑰
μμ
mapμ setκ³Ό κ°μ μΈν°νμ΄μ€ λ©€λ² ν¨μλ₯Ό μ 곡νλ©°, ν νλ¦Ώ νμκ³Ό λ΄μ₯ λ©€λ² νμλ§μ΄ μ½κ° μ°¨μ΄λ₯Ό 보μΈλ€.
mapμ
[]
μ°μ°μλ₯Ό μ 곡νμ¬ keyμ ν΄λΉνλ μμμ valueμ μ½κ² μ κ·Όνκ±°λ λ³κ²½ν μ μλ€.map
multimap
unordered associate container
μμκ° μ§μ λμ§ μμ μ°κ΄ 컨ν μ΄λλ μμκ° μ§μ λ κΈ°μ‘΄ μ°κ΄ 컨ν μ΄λμ κ°μ λμμ νλ€. κΈ°μ‘΄μ μ°κ΄ 컨ν μ΄λλ tree ꡬ쑰λ₯Ό κΈ°λ°μΌλ‘ λμνμ§λ§, μ΄ μ»¨ν μ΄λλ hash tableμ κΈ°λ°μΌλ‘ λμνλ€.
λ°λΌμ, μμμ μΆκ°, μμ μλκ° λΉ¨λΌμ‘μΌλ©°, λ€μν κ²μ μκ³ λ¦¬μ¦μ μ¬μ©ν μ μκ² λμλ€. μμκ° μ§μ λ μ°κ΄ 컨ν μ΄λλ μλ°©ν₯ λ°λ³΅μλ₯Ό μ§μνμ§λ§, μ΄ μ»¨ν μ΄λλ μλ°ν₯ λ°λ³΅μλ§μ μ§μνλ€.
unordered_set
unordered_multiset
unordered_map
unordered_multimap
μ°Έμ‘°
Last updated
Was this helpful?