我有一個這樣的載體:如何訪問嵌套在一對元素的載體,STL
vector < pair < int, pair < int,int > > > v
我要訪問的所有三個要素。我怎麼能通過迭代器來做到這一點? 我宣佈迭代器作爲IT1和IT2如下:
#include <bits/stdc++.h>
using namespace std;
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
vector<pair<int,pair<int,int> > > v;
int n,a,b,i;
scanf("%d",&n);
for(i=0;i<n;i++)
{
scanf("%d%d",&a,&b);
v.push_back(make_pair(b,make_pair(a,i+1)));
}
sort(v.begin(),v.end());
vector<pair<int,pair<int,int> > > :: iterator it1=v.begin();
vector<pair<int,pair<int,int> > > :: iterator it2=v.begin()+1;
printf("%d ",(it1->first)->second);
while(it2!=v.end())
{
if(it2->first.first>it1.first)
{
printf("%d ",it2.first.second);
it1=it2;
}
it2++;
}
}
return 0;
}
您是否嘗試過:'v [指數] .second.first'和'v [指數] .second.second'?還要考慮使用元組(如果您使用的是C++ 11)。 –
你正在混合對象訪問操作符'.'和' - >'到處。在某些地方你使用了正確的操作符,而在其他地方則沒有。你非常不一致。 –