我有一些文件,如下所示我需要删除多图
3KHJG 76 238
3KHJG 86 238
3GDMB 31 244
3GDMB 31 247
3GDMB 31 251
3KOFA 21 336
3KOFA 36 263
...
我需要获取一个文件,例如:
3KHJG 81 238
3GDMB 31 247
.....
//保留字符串键并计算下一列的平均值;
我有
typedef struct S{
int v1;
int v2;
...
}struct1;
struct1 s1;
//I parsed the old file and put them into a multimap and a set<string>;
multimap <string, s1> m;
multimap <string, s1>::iterator i;
set <string> pa_set;
int sumv1, sumv2;
int avgv1, avgv2;
for (set<string>:: iterator ip= pa_set.begin(); ip !=pa_set.end(); ip++)
{
multimap <string, struct1> ::iterator i = m.find(*ip);
int cnt=m.cout(*ip);
if (ip != m.end())
{
v1 =i->second.v1;
v2 =i->second.v2;
sumv1+=v1;
sumv2+=v2;
i++;
}
//calculate the avgv1 and avgv2;
}
然而,如果我使用if(){}它看起来像我只有迭代器一次? 我怎么能通过所有的interator完成
multimap<string,struct1> ::iterator i = m. find(*ip) && i != m.end() ;
非常感谢!