@42seoul : (2021.02.02 ~ 2020.03.09)
- μ΄ νλ‘μ νΈλ C++ STL λΌμ΄λΈλ¬λ¦¬μ λͺ κ°μ§ Containerλ₯Ό μ΄ν΄νκΈ° μν΄ μ§μ ꡬνν΄λ΄ λλ€. (In this project you will implement the various container types of the C++ standard template library.)
- ꡬν μ¬ν
- C++ 98μ λ°λ¦ λλ€.
- β List
- β Vector
- β Map
- β Stack
- β Queue
- β κ°κ°μ 컨ν μ΄λμ λ§λ iterator
- STLμ 컨ν μ΄λλ€μ μ§μ ꡬννλ©΄μ κ°μ₯ ν° μ΄μ μ λ¨μν STL ν¨μ μ¬μ©λ²μ μλ κ²μ λμ΄ microsoft/STL μ€νμμ€λ₯Ό λ°λΌκ° μ μμμΌλ©° μ€μ ꡬνμ΄ μ΄λ»κ² λμ΄μλμ§ νμΈν μ μμλ€. μ΄λ μμΌλ‘ μ΄λ€ ν¨μλ ꡬνμ¬νμ λ―μ΄λ³Ό μ μλ€λ μκ°μ λλ €μμ΄ μ¬λΌμ‘λ€.
- κ° μ»¨ν
μ΄λλ₯Ό ꡬννκΈ° μν΄ μλ£κ΅¬μ‘°λ₯Ό μ΄λ‘ μ μΌλ‘λ§ μλ κ²μ΄ μλ μ€μ λ‘ κ΅¬ννλ μ’ λ μλΏμλ€.
- i.e. vectorλ λμ λ°°μ΄λ‘ λ°°μ΄ ν¬κΈ°μ μ¬ν λΉμ μ¬μ©μκ° μ κ²½μ°μ§ μκ³ μ¬μ©νλ λ§€μ° μ μ©ν 컨ν
μ΄λ, μλ£κ΅¬μ‘°μ΄λ€. (Pythonμ Listλ λμ λ°°μ΄μ΄λ€) κΈ°μ‘΄ C, CPPμμ λμ λ°°μ΄ μλ£κ΅¬μ‘°λ₯Ό μ¬μ©νμ§ μκ³ ν λΉν λ°°μ΄ ν¬κΈ°λ₯Ό λμμ λλ μ¬ν λΉ ν΄μΌνλ λ²κ±°λ‘μμ λ²μ΄λλ€λ ꡬννλλ° μμ΄ λμ ν λΉ λ λ°°μ΄μ ν¬κΈ°λ₯Ό μ¦κ°ν λ λ§λ€ μλ‘κ² λμ ν λΉνμ¬ μΆκ°νλ λ¬Έμ λ₯Ό ν΄κ²°νλ€. μ΄λ μ¬ν λΉ ν¬κΈ°λ₯Ό μΌλ§λ§νΌ μ¬μ΄μ¦λ₯Ό μ€μ ν΄μΌν κΉλ₯Ό μ°Ύλ μ€
Growth Factor
μ κ°μ μ€μ νμ¬ (STL κΈ°μ€ 2) λμ ν λΉ νλ€λ ꡬν λ°©μμ΄ μλ‘μ λ€. - i.e. Map 컨ν μ΄λλ₯Ό ꡬνν λ STLμ Red-Black treeλ‘ κ΅¬νλμ΄ μλ€. μ€μ λ‘ λλ§μ Mapμ ꡬνν λ μ²μμλ λ¨μ Binary treeλ‘ κ΅¬ννμλ λ° νΈλ¦¬ λΆκ· ν λ¬Έμ λ‘ κ²μνλ λ° O(log n)μ μ§ν€μ§ λͺ»νλ€. μ΄λ₯Ό ν΄κ²°νκΈ° μν΄ AVL-Tree μλ£κ΅¬μ‘°λ‘ ꡬννμκ³ Red-Black treeμ κ°μ νκ· κ³Ό μ΅μ μ κ²½μ° κ²μ,μ½μ ,μμ λͺ¨λ O(log n)μΌλ‘ ꡬνν μ μμλ€.
- 컨ν μ΄λλ€μ μκ°, κ³΅κ° λ³΅μ‘λ κ°μ ν΄μΌ νλ€. κ°μ κΈ°λ₯μ΄μ΄λ .size()λ₯Ό μ°μ΄λ³΄λ©΄ ν° μ°¨μ΄κ° λ°μνλ€.
- i.e. vectorλ λμ λ°°μ΄λ‘ λ°°μ΄ ν¬κΈ°μ μ¬ν λΉμ μ¬μ©μκ° μ κ²½μ°μ§ μκ³ μ¬μ©νλ λ§€μ° μ μ©ν 컨ν
μ΄λ, μλ£κ΅¬μ‘°μ΄λ€. (Pythonμ Listλ λμ λ°°μ΄μ΄λ€) κΈ°μ‘΄ C, CPPμμ λμ λ°°μ΄ μλ£κ΅¬μ‘°λ₯Ό μ¬μ©νμ§ μκ³ ν λΉν λ°°μ΄ ν¬κΈ°λ₯Ό λμμ λλ μ¬ν λΉ ν΄μΌνλ λ²κ±°λ‘μμ λ²μ΄λλ€λ ꡬννλλ° μμ΄ λμ ν λΉ λ λ°°μ΄μ ν¬κΈ°λ₯Ό μ¦κ°ν λ λ§λ€ μλ‘κ² λμ ν λΉνμ¬ μΆκ°νλ λ¬Έμ λ₯Ό ν΄κ²°νλ€. μ΄λ μ¬ν λΉ ν¬κΈ°λ₯Ό μΌλ§λ§νΌ μ¬μ΄μ¦λ₯Ό μ€μ ν΄μΌν κΉλ₯Ό μ°Ύλ μ€