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

关于pair的有关问题

2012-08-30 
关于pair的问题我现在定义了一个setC/C++ codesetpairint, int mysetmyset.insert( make_pair(1, 2)

关于pair的问题
我现在定义了一个set

C/C++ code
set<pair<int, int> > myset;myset.insert( make_pair(1, 2) );myset.insert( make_pair(1, 3) );myset.insert( make_pair(1, 4) );myset.insert( make_pair(2, 3) );myset.insert( make_pair(2, 4) );myset.insert( make_pair(2, 5) );

myset里的元素类型是pair,我现在想求具有相同键值的元素的实值的和,比如myset里具有键值1的元素的有三个,实值分别为2,3,4,那么结果和就是9,同样,键值为2的元素的实值和为3+4+5=12.
请问怎么写代码呢。


[解决办法]
C/C++ code
#include <iostream>using namespace std;#include <set>int main(){    set<pair<int, int> > myset;    int sum=0;    myset.insert( make_pair(1, 2) );    myset.insert( make_pair(1, 3) );    myset.insert( make_pair(1, 4) );    myset.insert( make_pair(2, 3) );    myset.insert( make_pair(2, 4) );    myset.insert( make_pair(2, 5) );    for (set<pair<int,int>>::iterator it=myset.begin();it!=myset.end();it++)    {        if (it->first==1)        {            sum+=it->second;        }    }    cout<<sum<<endl;    getchar();    }
[解决办法]
为啥不直接用mutli_map
[解决办法]
mutli_map比较方便
[解决办法]
multimap就是用来干这个的

热点排行