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 로 같은키를 가진 애들을 긁어올 수 있습니다.
반응형
'나의질문답' 카테고리의 다른 글
map의 value를 수정하고 싶습니다. (0) | 2014.08.20 |
---|---|
equal_range 를 사용하여 key가 같은 value의 평균을 구하고 싶습니다. (0) | 2014.08.19 |
텍스트파일을 읽어들여서 다차원 배열로 만들고 싶습니다 (0) | 2014.08.12 |
이미지 유사도 (0) | 2014.08.11 |
opencv언어는 뭔가요? (0) | 2014.08.04 |