GameChoi
Choi Programming
GameChoi
전체 방문자
오늘
어제
  • 분류 전체보기 (468)
    • C++ Algorithm & Study (184)
      • C++ & Algorithm Strategies (45)
      • Game Math & DirectX 11 (72)
      • Server + UE5 (29)
      • Lyra Clone Coding (37)
    • Create Game (284)
      • [Window API] Game Client & .. (55)
      • [DirectX] DirectX 2D & 3D (155)
      • [UE5] BLUEPRINT & C++ (74)
    • odds and ends (0)
      • English (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Direct3D
  • c++
  • Player State
  • server
  • client
  • Player Move Packet
  • protobuf
  • core
  • RPG Game
  • Game Server
  • Game Room
  • Network Worker
  • session
  • GAME Client
  • Direct11
  • Algorithm Strategies
  • UE5
  • Other Character
  • job queue
  • Destination Move Packet

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
GameChoi

Choi Programming

[C++] 11 - 기초 문법 공부 일지(MAP)
C++ Algorithm & Study/C++ & Algorithm Strategies

[C++] 11 - 기초 문법 공부 일지(MAP)

2022. 12. 6. 20:05
  • map
    • 각 노드가 key와 value 쌍으로 이루어진 트리, 중복 허용X
    • first(key), second(value)가 있는 pair 객체로 저장
    • 검색, 삽입, 삭제가 레드블랙트리로 구성

1. Player Class Create

#include "pch.h"
#include <map>
#include <unordered_map>

class Player
{
public:
	Player() : id(0) {}
	Player(int id) : id(id) {}
	~Player() {}

	int GetId() { return id; }

private:
	int id = 0;
};

2. map Create

     - make_pair 함수 사용해 pair 객체로 저장 후 insert

int main()
{
	vector<Player*> player;
	for (int i = 0; i < 4; i++)
		player.push_back(new Player(i + 1));

	map<int, Player*> playerMap;
	for (auto* p : player)
		playerMap.insert(make_pair(p->GetId(), p));
}

3. 값 찾기

     - STL(Find)

     - key(first), value(second)

int main()
{
	auto it = playerMap.find(1);
	int key = it->first;
	Player* value = it->second;
}
  • hash map(unordered map)
    • map보다 더 빠른 탐색을 하기 위한 자료구조
    • 해쉬테이블로 구현한 자료구조
    • 중복된 데이터를 허용X, 데이터가 많을 시 좋은 성능을 가짐
    • key가 유사한 데이터가 많을 시 해시 충돌 발생 - 성능 하락
int main()
{
	// 메모리를 버리고 성능 선택
	unordered_map<int, int> hashMap;

	for (int i = 0; i < 4; i++)
		hashMap.insert(make_pair(i + 1, i * i));
	hashMap[1000] = 10000;

	auto it = hashMap.find(1);
	(it != hashMap.end()) ? cout << "1" << endl : cout << "0" << endl;

	int key = it->first;
	int value = it->second;
}

'C++ Algorithm & Study > C++ & Algorithm Strategies' 카테고리의 다른 글

[C++] 13 - 기초 문법 공부 일지(Sort)  (1) 2022.12.08
[C++] 12 - 기초 문법 공부 일지(STL)  (0) 2022.12.06
[C++] 10 - 기초 문법 공부 일지(Tree)  (0) 2022.12.05
[C++] 9 - 기초 문법 공부 일지(Graph)  (2) 2022.12.03
[C++] 8 - 기초 문법 공부 일지(Stack)  (0) 2022.12.02
    'C++ Algorithm & Study/C++ & Algorithm Strategies' 카테고리의 다른 글
    • [C++] 13 - 기초 문법 공부 일지(Sort)
    • [C++] 12 - 기초 문법 공부 일지(STL)
    • [C++] 10 - 기초 문법 공부 일지(Tree)
    • [C++] 9 - 기초 문법 공부 일지(Graph)
    GameChoi
    GameChoi

    티스토리툴바