나의질문답

map의 key와 value 추출

예쁜꽃이피었으면 2014. 8. 26. 15:15

http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=50&MAEULNO=20&no=941876&ref=941876&page=1





안녕하세요

 

map에 key는  float형식이고

value는 string입니다.

 

현재 key는 내림차순으로 정렬되어 있습니다.

이 map의 데이터에서 상위 10개의 key와 value를 추출하고 싶습니다.

 

어떤 걸 사용해야 상위10개를 추출할 수 있나요?

 답변 부탁 드리겠습니다..




=> 답1

begin() 으로 이터레이터 얻어서 ++ 하면서 10개 항목 얻어오면 되죠.

뒤에서부터 하려면 rbegin() 으로 리버스 이터레이터 얻어오면 되구요.


=>나의 질문1

map<float, string,greater<float>>::iterator iter3;
for( iter3 = matchMean2.begin(); iter3 != matchMean2.end() ; iter3++)
cout << "matchMean2["<<(*iter3).first <<"]: " << (*iter3).second << endl;
 
이렇게 전체는 받아오는데요
10개까지라는걸
 iter3 != matchMean2.end() ; 
여기서 어떻게 표현해야 할지 모르겠습니다.


=>답1-1

조건을 아래와 같이 추가하면 되겠죠.

 

map<float, string,greater<float>>::iterator iter3;
int i = 0;
for( iter3 = matchMean2.begin(); iter3 != matchMean2.end() && i < 10 ; iter3++,i++)


반응형