声明一个整型数组,使用c++标准模板中的查找算法find()进行数据的查找,然后应用排

然后应用排序算法sort()对数据进行升序和降序排列... 然后应用排序算法sort()对数据进行升序和降序排列 展开
 我来答
ssilspro
推荐于2016-10-26 · TA获得超过2625个赞
知道大有可为答主
回答量:1148
采纳率:0%
帮助的人:1696万
展开全部
#include <iostream>
#include <vector>
#include <algorithm>
#include <functional>

using namespace std;

template <class Type>
void print_elements( Type elem ) { cout << elem << " "; }
void (*pfi)( int ) = print_elements;

int main ()
{
int a[]={0,1,2,3,4,5,6,7,8,9};
const int size = sizeof(a)/sizeof(*a);
vector<int> v(a,a+size);

for_each(v.begin(),v.end(),pfi);
cout<<endl;

int fv = a[3];
vector<int>::iterator it = find(v.begin(),v.end(),fv);
cout << "find the first occurrence of " << fv << "\t"
<< ( it!=v.end() ? "found!\n" : "not found!\n" );

sort(v.begin(),v.end());
for_each(v.begin(),v.end(),pfi);cout<<endl;

sort(v.begin(),v.end(),greater<int>());
for_each(v.begin(),v.end(),pfi);cout<<endl;

sort(v.begin(),v.end(),less<int>());
for_each(v.begin(),v.end(),pfi);cout<<endl;

return 0;
}
有心人Ec
2012-05-16 · 超过10用户采纳过TA的回答
知道答主
回答量:50
采纳率:0%
帮助的人:26.5万
展开全部
花3分钟写的,跟你的要求一样

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;

bool largeThan(int x,int y)
{
return x>y;
}
int main()
{
int a[7]={1,2,3,4,5,6,7};
size_t arrSize=7;
int searchValue=5;
vector<int> vec(a,a+arrSize);
vector<int>::iterator it=find(vec.begin(),vec.end(),searchValue);
if(it==vec.end())
cout<<"not found"<<endl;
else
cout<<searchValue<<"'s index is "<<(it-vec.begin())<<endl;
//升序
sort(vec.begin(),vec.end());
for(vector<int>::iterator it=vec.begin();it!=vec.end();it++)
cout<<*it<<ends;
cout<<endl;

//降序;
sort(vec.begin(),vec.end(),largeThan);
for(vector<int>::iterator it=vec.begin();it!=vec.end();it++)
cout<<*it<<ends;
cout<<endl;
}
更多追问追答
追问
额?有一个错误》Files\Microsoft Visual Studio\MyProjects\e\1.cpp(23) : error C2374: 'it' : redefinition; multiple initialization
追答
你把 vector::iterator it=find(vec.begin(),vec.end(),searchValue); 换一个名字即可(和后面的	for(vector::iterator it=vec.begin();it!=vec.end();it++)重复了,或者直接把后面的定义去掉。

还有,局部变量覆盖全局变量没什么问题,我的正常运行。你的肯定不是vs2010
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式