나의질문답

multimap의 value평균구하기 질문있습니다

예쁜꽃이피었으면 2014. 8. 18. 17:46

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


안녕하세요~
map이란걸 사용하다가 key값이 중복될 때는
multimap을 사용하면 된다는 것을 알고 적용을 해보았더니
key값이 중복되어도 덮어쓰지 않고 잘 출력이 되더라고요.
 
for(multimap < string , float>::iterator iter = matchPlants.begin(); iter != matchPlants.end(); ++iter)
{
 cout << "matchPlants["<<(*iter).first <<"]: " << (*iter).second << endl;
 
}
 
그런데 하고자 하는 것은
중복된 key값들의 value끼리의 평균을 구하려고 하는 것인데
 
질문1. 키값이 중복된 것끼리의 값을 어떻게 더하고,(키는 같아도 값은 달라요)
질문2. 중복된 키가 몇개인지 어떻게 알 수 있나요? (평균구할 때 나누기 하려고요)
 
 
 
 
 int avg = 0;
 if ((*iter).first == (*iter).first )
 { 
 avg = ((*iter).second + (*iter).second + (*iter).second) /3 ;
 cout << avg << endl;
 }
 
이렇게 했더니.. 각 키에 대해 3번씩 더하고 평균을 내더라고요..
 

혹시 도움을 받을 수 있을까 싶어서 글을 남깁니다..ㅜ

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




=====>

equal_range 로 같은키를 가진 애들을 긁어올 수 있습니다.

반응형