首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

怎么将数组中相同的值去掉,只留一个呀

2012-03-11 
如何将数组中相同的值去掉,只留一个呀?我有两个整形数组,一个记录键值,一个记录所对应的分数.现在要求是如

如何将数组中相同的值去掉,只留一个呀?
我有两个整形数组,一个记录键值,一个记录所对应的分数.现在要求是如果出现相同的键值,只留第一个,在分数那块,把以后出现键值相同所对对应的分数,都加在第一个键值所对应的上边,可能说的不清楚,举例说一下吧.我的两个数组是一一对应的.
int   key={1,2,3,4,2,4,2};//键值
int   value={10,20,10,30,20,10,30};//分数
现在2出现了三次,要把后面2个2取掉.后面2个所对应的分数都加在第一个2所对就对应的分数上.
value[1]=value[1]+value[4]+value[6]=70,
最终数组变成.
int   key={1,2,3,4,4};//键值
int   value={10,70,10,30,10};//分数
当然这只是把重复的2取了,还有4呢,就这样个想法,应该说清楚了吧!




[解决办法]
#include <map>

int key[] ={1,2,3,4,2,4,2};
int value[] ={10,20,10,30,20,10,30};
std::map <int, int> m;
for(int i = 0; i < 7; ++i)
{
m[key[i]] += value[i];
}


[解决办法]
你最好学学STL,用STL的map和multi_map

热点排行