例:数组中找到两个满足条件的数,和为一个定值。如果有多对,输出一对即可。
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int n,num,a[101],i;
cin>>n>>num;
for(i=0;i<n;i++) cin>>a[i];
sort(a,a+n);
int start=0,end=n-1;
while(start<end)
{
int sum=a[start]+a[end];
if(sum==num)
{
cout<<num<<'='<<a[start]<<'+'<<a[end]<<endl;
return 0;
}
if(sum<num) start++;
else if(sum>num) end--;
}
cout<<"not found"<<endl;
return 0;
}
例:删除一个vector中值为某个数的所有元素。
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
vector<int>v;
vector<int>::iterator it1,it2;
int n,m,i;
cin>>n;
while(n--)
{
cin>>m;
v.push_back(m);
}
cin>>n;
sort(v.begin(),v.end());
it1 = lower_bound(v.begin(),v.end(),n);
it2 = upper_bound(v.begin(),v.end(),n);
v.erase(it1,it2);
for(i=0;i<v.size();i++) cout<<v[i]<<" ";
return 0;
}