如何基于向量对的第一个元素编码具有向量对的第二个元素的上限

时间:2020-05-27 16:47:07

标签: c++

我有以下类型的已排序(根据first.second元素)向量对: vector<pair<pair<int,int>,int>>p;

我的Comparator函数对向量对进行排序

bool sortbysec(pair<pair<int,int>,int>&a,pair<pair<int,int>,int>&b)
{
  if(a.first.second==b.first.second)return a.first.first<b.first.first;
  else return a.first.second<b.first.second;
}

我要在p.first.second个元素的列表中将p.first.first个元素的上限。

例如-

    2 2 7
    1 3 4
    1 4 3
    4 5 8
    5 7 5
    4 8 6
    5 8 1
    6 8 9
    8 8 0
    8 9 2

简单来说,我想要向量对中间元素的上限。应该在向量对的第一个元素列表中搜索该特定元素的上限。

例如,第二行3的上限是第四行4。

我的问题是: 我不知道该怎么编码。我已经尝试过这种语法(不正确):

auto it=lower_bound(v.begin(),v.end(),make_pair(make_pair(2,2),7));

这显示错误。 希望您理解这个问题。 请任何人告诉我一种如何正确编码的方法,以便仅在c ++中获得所需的结果。

0 个答案:

没有答案