C++ *max_element函数找最大元素 *min_element函数找最小元素 STL算法(转)
2015-09-23 21:15
309 查看
http://blog.sina.com.cn/s/blog_6f3a860501019z1f.html
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int n[]={1,4,22,3,8,5};
int len=sizeof(n)/sizeof(int);
cout<<*max_element(n,n+len)<<endl;
cout<<*min_element(n,n+len)<<endl;
return 0;
}
min_element 算法返回最小的元素的位置中序列 [first, last)。
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
int n[]={1,4,2,3,5,0};
vector<int>v(n,n+sizeof(n)/sizeof(int));//sizeof(n)/sizeof(int)是求数组n的长度
cout<<*min_element(v.begin(),v.end())<<endl;//最小元素
cout<<*max_element(v.begin(),v.end())<<endl;//最大元素
return 0;
}
题目就是要用贪心思想来求。。。。。。,最先完成的机器总是找需要花费时间最长的作业来进行,最终求得答案。。。。。
代码:
#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
using namespace std;
bool comp(int x,int y)
{
return x>y;
}
int main()
{
int ncases,n,m,i,a[10010],ans[101];
scanf("%d",&ncases);
while(ncases--)
{
memset(a,0,sizeof(a));
memset(ans,0,sizeof(ans));
scanf("%d %d",&n,&m);
for(i=0;i<=n-1;i++)
{
scanf("%d",&a[i]);
}
sort(a,a+n,comp);
for(i=0;i<=n-1;i++)
{
*min_element(ans,ans+m)=*min_element(ans,ans+m)+a[i];
}
printf("%d\n",*max_element(ans,ans+m));
}
return 0;
}
#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
int n[]={1,4,22,3,8,5};
int len=sizeof(n)/sizeof(int);
cout<<*max_element(n,n+len)<<endl;
cout<<*min_element(n,n+len)<<endl;
return 0;
}
min_element 算法返回最小的元素的位置中序列 [first, last)。
#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
int main()
{
int n[]={1,4,2,3,5,0};
vector<int>v(n,n+sizeof(n)/sizeof(int));//sizeof(n)/sizeof(int)是求数组n的长度
cout<<*min_element(v.begin(),v.end())<<endl;//最小元素
cout<<*max_element(v.begin(),v.end())<<endl;//最大元素
return 0;
}
题目就是要用贪心思想来求。。。。。。,最先完成的机器总是找需要花费时间最长的作业来进行,最终求得答案。。。。。
代码:
#include<stdio.h>
#include<string.h>
#include<iostream>
#include<algorithm>
using namespace std;
bool comp(int x,int y)
{
return x>y;
}
int main()
{
int ncases,n,m,i,a[10010],ans[101];
scanf("%d",&ncases);
while(ncases--)
{
memset(a,0,sizeof(a));
memset(ans,0,sizeof(ans));
scanf("%d %d",&n,&m);
for(i=0;i<=n-1;i++)
{
scanf("%d",&a[i]);
}
sort(a,a+n,comp);
for(i=0;i<=n-1;i++)
{
*min_element(ans,ans+m)=*min_element(ans,ans+m)+a[i];
}
printf("%d\n",*max_element(ans,ans+m));
}
return 0;
}
相关文章推荐
- 黑马程序员------C语言函数部分总结(一)
- More Effective C++ 条款18 分期摊还预期的成本
- 项目24.1分段函数求值
- 【C语言】交换两个数的内容
- POJ C++程序设计 编程题#9:人群的排序和分类
- C++this指针、智能指针
- C++语言const修饰指针
- C++习题二第12题
- 文章标题
- 蓝桥杯 地宫寻宝 带缓存的DFS
- Effective C++——条款53(第9章)
- VC++编译器调试(一)
- POJ C++程序设计 编程题#7:字符串排序
- C++函数返回引用
- string c++ 详解 erase find .
- c++设计模式----解释器模式interpreter
- 【c++ templates读书笔记】【2】类模板
- 【c++ templates读书笔记】【2】类模板
- C++一个简单的手柄类模板
- C++学习记录之STL函数