1. μμ(μνμ€) 컨ν μ΄λ
λ°μ΄ν°λ₯Ό μ νμΌλ‘ μ μ₯νλ 컨ν μ΄λλ‘ μ°κ΄ 컨ν μ΄λμ λΉν΄ κ²μ μ±λ₯μ΄ μ’μ§ μλ€.
1) Vector
κ°μ₯ κΈ°λ³Έμ μΈ μ»¨ν μ΄λμ΄λ€.
- μΌλ° λ°°μ΄μ²λΌ μ°μμ μΈ λ©λͺ¨λ¦¬μ μ μ₯λκ³ νμ₯/μΆμκ° κ°λ₯ν λμ λ°°μ΄λ‘ ꡬνλμ΄ μλ€.
- iterator λΏλ§ μλλΌ indexλ‘λ μ κ·Όμ΄ κ°λ₯νμ¬ κ°λ³ μμμ λν μ κ·Ό μλκ° λΉ λ₯΄λ€.
2) Deque
- vectorμ λΉμ·ν 컨ν μ΄λμ΄μ§λ§, νλμ λ©λͺ¨λ¦¬ λΈλ‘μ΄ μλ μ¬λ¬ λ©λͺ¨λ¦¬ λΈλ‘μ λλμ΄ μ μ₯λλ€.
- Random access iteratorλ₯Ό ν΅ν indexλ‘ μ κ·Όμ΄ κ°λ₯νλ€.
3) List
- λΉμ°μμ μΈ λ©λͺ¨λ¦¬μ μ μ₯λλ€.
- indexλ‘ μ κ·Όμ΄ λΆκ°λ₯νλ€. μ κ·Όμ νκΈ° μν΄μλ μ ν νμμ΄ νμνλ€.
- λ³΄ν΅ μ½μ , μμ νλ μ°μ°μ΄ λ§μ λ μ¬μ©νλ€.
4) Array
- vectorμ λΉμ·ν 컨ν μ΄λμ΄μ§λ§, μ μ λ°°μ΄μ΄λ€.
2. μ°κ΄ 컨ν μ΄λ
μμμ μμΉκ° μμ μ κ°κ³Ό νΉμ μ λ ¬ κΈ°μ€μ λ°λΌ μ ν΄μ§λ 컨ν μ΄λλ‘ λΉ λ₯Έ κ²μμ μ©μ΄νλ€.
1) Set
set<key, (orderclass)>μ ννλ‘ key κ°μ κΈ°μ€μΌλ‘ μ λ ¬λ μν μ μ§νλ€.
- key κ°μ μ€λ³΅λ κ°μ νμ©νμ§ μλλ€.
- orderclassλ‘ μ λ ¬ κΈ°μ€μ μ ν μ μλ€. λν΄νΈλ μ€λ¦μ°¨μμ΄λ€.
class OrderClass {
public:
bool operator()(pair<int, int> a, pair<int, int> b) {
return a.second < b.second;
}
};
int main()
{
set<pair<int, int>, OrderClass> s;
}
2) Map
map<key, value>μ ννλ‘ key κ°μ κΈ°μ€μΌλ‘ μ λ ¬νλ€.
- key κ°μ μ€λ³΅λ κ°μ νμ©νμ§ μλλ€.
- m[key] = value;μ ννλ‘ μμλ₯Ό μΆκ° λλ μμ μ΄ κ°λ₯νλ€.
3) Multiset/Multimap
μ€λ³΅λ μμ(key)λ₯Ό νμ©νλ€.
3. λΉμ λ ¬ 컨ν μ΄λ
μμμ μμΉκ° μ€μνμ§ μκ³ νΉμ μμκ° μ΄ μ»¨ν μ΄λ μμ μλμ§κ° μ€μνλ€.
1) unordered_set
2) unordered_map
4. 컨ν μ΄λ μ΄λν°
1) stack
2) queue
5. λ°λ³΅μ (Iterator)
컨ν μ΄λ ν΄λμ€μ λͺ¨λ λ°μ΄ν°λ₯Ό μ κ·Όνλ μ°μ°μλ‘ * μ°μ°μλ₯Ό ν΅ν΄ λ°λ³΅μκ° κ°λ¦¬ν€λ κ°μ κ°μ Έμ¨λ€.
// κ° μ°ΎκΈ°
auto iter = find(v.begin(), v.end(), val);
if (iter == v.end())
cout << "κ°μ΄ μ‘΄μ¬νμ§ μμ";
// μ΅μκ°/μ΅λκ° μ°ΎκΈ°
auto iter = min_element(v.begin(), v.end());
auto iter = max_element(v.begin(), v.end());
// μ§μ°κΈ°
auto iter = remove_if(v.begin(), v.end(), [](int a) {
return a % 3 == 0;
});
v.erase(iter, v.end());
6. ꡬν
https://baactree.tistory.com/29
7. κΈ°ν
1) Vector, List, Map μ°¨μ΄μ
- Vector: μΈλ±μ€λ‘ λλ€ μ κ·Ό κ°λ₯νμ§λ§ κ²μ μλκ° λλ¦¬κ³ μ€κ°μ λ°μ΄ν° μ½μ μ΄λ μμ κ° μ΄λ ΅λ€.
- List: μ½μ κ³Ό μμ κ° μ½μ§λ§ λ°λμ μνν΄μΌ μνλ μλ£λ₯Ό μ°Ύμ μ μλ€.
- Map: λ§μ μλ£λ₯Ό μ λ ¬ν μ μκ³ λΉ λ₯Έ κ²μμ΄ κ°λ₯νμ§λ§ μ½μ κ³Ό μμ κ° μ΄λ ΅λ€.
2) Mapκ³Ό HashMap μ°¨μ΄
- Mapμ ν€λ₯Ό μ΄μ©ν΄ λ°μ΄ν°μ μ κ·Όνκ³ λ΄λΆ μλ£λ€μ μ λ ¬νλ€. μ΄λ Mapμ λ λ λΈλ νΈλ¦¬λ₯Ό μ΄μ©νμ¬ logNμ μλλ₯Ό κ°μ§μ§λ§ HaspMapμ μμ μκ° λ΄μ μνν μ μλ€. λ°μ΄ν°μμ΄ λ§μ κ²½μ° HaspMapμ μ¬μ©νλ κ² μ’λ€.
- Mapμ μ λ ¬λ μνλ‘ μ μ₯νμ§λ§ HashMapμ μ λ ¬νμ§ μλλ€. μλνλ©΄ μμμ μμΉκ° μ€μνμ§ μκ³ νΉμ μμκ° μ΄ μλ£κ΅¬μ‘° μμ μλμ§κ° μ€μνκΈ° λλ¬Έμ΄λ€.
- STLμ 곡μ 컨ν μ΄λμλ HashMapμ λ°λ‘ μ μνμ§ μμλλ°, λμ κ±°μ λμΌν κΈ°λ₯μ μ 곡νλ unordered_mapμ μ΄μ©ν΄ μ¬μ©ν μ μλ€.