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

我很想知道。
#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这种写法必须跟个什么样子的函数啊。实现了什么啊?

慕村9548890
浏览 96回答 1
1回答

沧海一幻觉

参考一下吧。&nbsp;#include<iostream>&nbsp;#include<vector>&nbsp;#include<algorithm>&nbsp;using namespace std;&nbsp;void show(int number) //将排序后的数字输出&nbsp;{&nbsp;cout<<number<<endl;&nbsp;}&nbsp;int main()&nbsp;{&nbsp;vector<int> getnumber;&nbsp;int x;&nbsp;int i=0;&nbsp;do{&nbsp;cout<<"please enter a number,when you enter 0,this will end"<<endl;&nbsp;cin>>x;&nbsp;getnumber.push_back(x);&nbsp;}while(x!=0);&nbsp;int j=getnumber.size();&nbsp;int t;&nbsp;for(i=0;i<j;i++)&nbsp;{&nbsp;for(int m=j-1;m>i;m--)&nbsp;{&nbsp;if(getnumber[m-1]>getnumber[m])&nbsp;{&nbsp;t=getnumber[m-1];&nbsp;getnumber[m-1]=getnumber[m];&nbsp;getnumber[m]=t;&nbsp;}&nbsp;}&nbsp;}&nbsp;cout<<"the result:"<<endl;&nbsp;for_each(getnumber.begin(),getnumber.end(),show);&nbsp;return 0;&nbsp;}for_each第一个参数和第二个参数是指定范围的,如果是容器,那么就那么写,如果是数组,就写指针,第三个参数的调用函数的名字,就是说对于第一个参数和第二个参数指定范围之中的每一个元素都会带入到第三个参数指定的函数中去。
打开App,查看更多内容
随时随地看视频慕课网APP