[C++] class의 static 멤버로 container를...
글쓴이: wafe / 작성시간: 금, 2005/01/14 - 5:39오후
class A
{
public:
static std::map<long, long> longToLongMap;
};
이런 식의 클래스가 있을 때 저 맵의 내용을 초기화하고 싶으면 어떻게 해야할까요? 예를 들어 이런 식으로 말이지요.
longTolongMap[2] = 10; longTolongMap[4] = 15;
맵을 초기화하는 static 멤버 함수를 만들어서 초기화하는 방법밖에는 없나요? 그 함수를 불러주어야할 시기가 참 오묘한지라...
Forums:


map을 초기화하는 시점이 오묘하다는 것이 무슨 뜻인지 모르겠습니다.
map을 초기화하는 시점이 오묘하다는 것이 무슨 뜻인지 모르겠습니다.
main() 함수를 실행하기 전에 초기화가 완료돼야 한다면 이런 방법은 있습니다.
class A { public: static std::map<long, long> longToLongMap; private: class bootstrap { public: bootstrap(std::map<long, long>& m) { m[2] = 10; m[4] = 15; } }; static bootstrap bs; }; std::map<long, long> A::longToLongMap; A::bootstrap A::bs(A::longToLongMap); int main() { /* ... */ }boost의 assign 라이브러리를...
Boost를 보면 Assignment라는 라이브러리가 있습니다.
http://www.boost.org/libs/assign/index.html
map_list_of 를 보세요.
(저도 문서만 보고 써보진 않았습니다)
댓글 달기