为了账号安全,请及时绑定邮箱和手机立即绑定

我自己调用这个始终不行,请各位修改一下!谢谢

我自己调用这个始终不行,请各位修改一下!谢谢

慕村9548890 2023-04-21 18:14:34
我很想知道。#include<iostream>#include<vector>#include<algorithm>using namespace std;void main(void){vector<int>::iterator it; //声明迭代器int x;int i=0;do{cout<<"please enter a number,when you enter 0,this will end"<<endl;cin>>x;  getnumber.push_back(x);}while(x!=0); int j=getnumber.size();int t;for(i=0;i<j;i++){for(int m=j-1;m>i;m--){if(getnumber[m-1]>getnumber[m]){t=getnumber[m-1];getnumber[m-1]=getnumber[m];getnumber[m]=t;}}}cout<<endl;for_each(getnumber.begin(),getnumber.end(),show);//迭代器的输出使用  }void show(vector<int>&number) //将排序后的数字输出{cout<<number<<endl;}主要希望各位特别讲解下for_each的用法。我很笨,讲详细点吧,老师讲了一遍没明白!具体我不明白就是.for_each的括号里。那个函数show到底是个什么意思啊?不是函数本身的意思。就是对应的for_each这种写法必须跟个什么样子的函数啊。实现了什么啊?
查看完整描述

1 回答

?
沧海一幻觉

TA贡献1824条经验 获得超5个赞

参考一下吧。 
#include<iostream> 
#include<vector> 
#include<algorithm> 
using namespace std; 

void show(int number) //将排序后的数字输出 

cout<<number<<endl; 



int main() 

vector<int> getnumber; 
int x; 
int i=0; 
do{ 
cout<<"please enter a number,when you enter 0,this will end"<<endl; 
cin>>x; 
getnumber.push_back(x); 
}while(x!=0); 
int j=getnumber.size(); 
int t; 
for(i=0;i<j;i++) 

for(int m=j-1;m>i;m--) 

if(getnumber[m-1]>getnumber[m]) 

t=getnumber[m-1]; 
getnumber[m-1]=getnumber[m]; 
getnumber[m]=t; 




cout<<"the result:"<<endl; 
for_each(getnumber.begin(),getnumber.end(),show); 
return 0; 
}
for_each第一个参数和第二个参数是指定范围的,如果是容器,那么就那么写,如果是数组,就写指针,第三个参数的调用函数的名字,就是说对于第一个参数和第二个参数指定范围之中的每一个元素都会带入到第三个参数指定的函数中去。


查看完整回答
反对 回复 2023-04-23
  • 1 回答
  • 0 关注
  • 93 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信