我有以下类型的已排序(根据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 ++中获得所需的结果。