std::map은 키와 값이 있는 자료구조인데, 특이한 점은 키들 간 크기 비교가 가능하면(연산자 오버로딩 등의 방법으로) 어떤 구조체라도 상관이 없다는 점이다. 예를 들어 std::string이라던가, 값이 0부터 늘어나지 않거나 순서대로 증가하지 않는 enum 등등. 그리고 크기 비교가 가능하기 때문에 입력 시 자동적으로 정렬이 된다. 이 자료구조는 굉장히 쓰기 쉽게 [] 연산자를 지원하는데, [] 안에키를 입력하면 값에 접근할 수 있다. 심지어, 해당 키에 대한 값이 초기화되어 있지 않아도 접근이 가능하다. 말이 살짝 어려울 수 있으니 예제를 보자. #include <map> … class T { }; std::map<int, T*> m;m[10] = new T{};
Continue reading ...