척척석사가 되어보자
C++ STL - hash_map, vector사용하기 본문
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)); 으로 해주면 된다.
'알고리즘 > C++' 카테고리의 다른 글
c++ serialization (boost 사용) (0) | 2018.09.28 |
---|---|
class 내의 static 함수 (0) | 2018.09.10 |