2010-11-25 4 views
4

키가 고유하지 않은 곳에 어떤 종류의 컬렉션 메서드 (키와 값)를 저장할 것인가 (기술적으로 키가되지는 않는다)? 내 프로그램에서C++ Collections : 구조체와 같은지도를 만드는 법

어딘가에는 내가 가진 :

typedef struct 
{ 
    int nKey; 
    string strFormType; 
} KeyPair; 

가 그럼 난이 구조체를 사용하여 벡터 개체를 저장할 수 있습니다.

vector<KeyPair> vKeyList; 
KeyPair MenuOne; 
MenuOne.nKey = 1; 
MenuOne.strFormType = "Window"; 
vKeyList.push_back(MenuOne);  

MenuOne.nKey = 0; 
MenuOne.strFormType = "Window2"; 
vKeyList.push_back(MenuOne); 

MenuOne.nKey = 1; 
MenuOne.strFormType = "WindowC"; 
vKeyList.push_back(MenuOne);  

이것은 기본적으로 개체를 벡터에 저장하는 방법입니다. 내 문제는, 만약 내가 100 개의 KeyPairs를 저장하려고한다면, 나는 루프에서 그것을 수행해야만하고, 저장 장치에서 KeyPairs를 읽은 다음 벡터를 push_back한다. 당신이 고유 키를 가지고 있기 때문에

KEY WINDOW 
1 Window 
0 Window2 
1 WindowC 
3 Windowfoo 
1 Window 
and so on... 

내가지도에 저장할 수 없습니다 : 나는이 키 쌍을 저장해야 할 경우에는 어떻게

. 내가 가지고있는 KeyPair의 키는 고유하지 않습니다. 어떠한 제안? 이그나시오 바스케스 - 에이 브람스 등의 multimap`

+0

사용은'제안, 또는 정렬 된 벡터를 유지하고'lower_bound'를 사용합니다. – dalle

답변