#include <iostream>
#include "fun.cpp"
#include <algorithm>
#include <vector>
using namespace std;
bool cmp(const pair<int ,int> &a,const pair<int ,int> &b)
{
return a.first<b.first;
}
int main()
{
vector <pair<int ,int>>v;
v.push_back(make_pair(2,3));
v.push_back(make_pair(1,2));
v.push_back(make_pair(3,9));
sort(v.begin(),v.end(),cmp);
for(auto e:v)
cout<<e.first<<e.second<<endl;
vector<pair<int ,int>> m;
auto it=v.begin();
int begin=it->first;
int end=it->second;
if((it+1)==v.end())
m.push_back(make_pair(begin,end));
else
{
it++;
for(;it!=v.end();it++)
{
if(end<it->first)
{
m.push_back(make_pair(begin,end));//加入的条件是出现左边的小于右边的,这样前面的一段就结束了。真的结束了!
begin=it->first;
end=it->second;
}
else if(end >=it->first&&end<=it->second)
{
end=it->second;
}
if((it+1)==v.end())
m.push_back(make_pair(begin,end));
}
}
for(auto e:m)
cout<<e.first<<" "<<e.second<<endl;
}
区间重合判断
最新推荐文章于 2021-04-20 21:22:25 发布