如何打印出多对的元素

时间:2017-10-28 10:02:47

标签: c++ c++11 stl multiset

multiset< pair<int,pair<int,int>> >ml;
pair<int,pair<int,int>> p;
p.first=3;
p.second.first=5;
p.second.second=2;
ml.insert(p);

这就是我在我的多对中插入的一对 但我不知道如何打印出我的多对中的所有元素 我试过了,但它没有用

 multiset< pair<long long,pair<long long,long long> > >::iterator it;
      it=ml.begin(); 
   p=*it;
cout<<p.first<<" "<<p.second.first<<" "<<p.second.second<<endl;

2 个答案:

答案 0 :(得分:0)

只需迭代整个集合(基于C ++ 11范围,这里很好):

for (auto x : ml)
{
    cout << "First: " << x.first <<" " << " Second first: " << x.second.first << " Second.second: " << x.second.second << endl;
}

答案 1 :(得分:0)

这有两种方法。它们几乎相同,但第二个更短。

第一种方法:

for (multiset< pair<int, pair<int,int> > >::iterator it = ml.begin(); it!=ml.end(); it++) {
    cout<<"First: "<<it->first<<", Second: "<<it->second.first<<", Third: "<<it->second.second<<endl;
}

第二种方法(仅在C ++ 11及更高版本中):

for (auto it:ml) {
    cout<<"First: "<<it.first<<", Second: "<<it.second.first<<", Third: "<<it.second.second<<endl;
}

输出结果相同:

First: 3, Second: 5, Third: 2