오븐 노트

[C++] map #1 본문

Develop/C++

[C++] map #1

오 븐 2023. 7. 11. 18:17
#include <iostream>
using namespace std;
#include <vector>
#include <list>
#include <deque>
#include <map>

class Player
{
public:

public:
    Player() : _playerId(0) { }
    Player(int playerId) : _playerId(playerId) { }

public:
    int _playerId;
};

template<typename T1, typename T2>
struct Pair
{
    T1 t1;
    T2 t2;
};

int main()
{
    // 연관 컨테이너
    
    // map : 균형 이진 트리 (AVL)
    // - 노드 기반

    class Node
    {
    public:
        Node* _left;
        Node* _right;
        // DATA
        pair<int, Player*> _data;
        //int     _key;
        //Player* _value;
    };

    // (Key, Value)
    map<int, int> m;

    // 10만명
    for (int i = 0; i < 100000; i++)
    {
        m.insert(pair<int, int>(i,  i * 100));
    }

    // 5만명 퇴장
    for (int i = 0; i < 50000; i++)
    {
        int randomValue = rand() % 50000;

        // Erase By Key
        m.erase(randomValue);
    }

    // Q) ID = 1만인 Player 찾고 싶다
    // A) map 자체가 삽입, 삭제 등 찾는 모든 과정이 빠르게 일어나기 때문에 매우 빠르게 찾을 수 있음.

    m.find(10000);

    return 0;
}

[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문 - 인프런 | 강의
 
C++ 카테고리의 글은 인프런 Rookiss님의 강의를 공부하며 정리하는 내용입니다.
이미 알고 있는 내용도 다시 정리 되어있을 수 있습니다.

 

모든 글은 제가 공부하기 위해 작성합니다.

'Develop > C++' 카테고리의 다른 글

[C++] set, multimap, multiset  (0) 2023.08.23
[C++] map #2  (0) 2023.07.13
[C++] deque  (0) 2023.06.26
[C++] list #3  (0) 2023.06.09
[C++] list #2  (0) 2023.06.09