알고리즘/C++
C++ STL - hash_map, vector사용하기
0.genius
2018. 9. 19. 12:44
class node를 정의하는데 자식이 여러개인 경우 , 배열로 만들자니 메모리 낭비가 너무 크고, 포인터로 만들자니 너무 복잡해져서 라이브러리 vector를 사용하기로 하였다.
다음과 같이 정의하고
class node {
private:
노드 정보
..
..
vector<node*> child;
}
child.push_back(n);
이렇게 넣어주었다.
vector가 list보다 좋은 점은 배열처럼 index로 접근 할수 있다는 점이다.
지금 하는 작업중에서, 노드의 순서를 바꾸는 작업은 없고 인덱스를 통해 접근해야하는 과정이 많기 때문에 vector를 사용하였다.
hash_set이 아닌 hash_map을 사용한 이유는 타입이 다른 두 가지의 정보를 저장해야하기 때문이다.
정의는 hash_map<string, node*> incode;
이렇게 해주면 된다.
입력은 incode.insert(hash_map<string, node*>::value_type(str, Node)); 으로 해주면 된다.