c++ primer中的一道练习题,有错误,请帮忙看看^-^
9.12 编写一个函数,其形参是一对迭代器和一个 int 型数值,实现在迭代器标记的范围内寻找该 int 型数值的功能,并返回一个 bool 结果,以指明是否找到指定数据。这是原题目。我改进了下:自己输入vector的元素,回车结束输出。然后自己输入要找的数字。
结果不对,应该输入vector元素的时候错了吧。
程序代码:#include <iostream>
#include <vector>
using namespace std;
bool find(vector<int>::iterator first,vector<int>::iterator last,int x)
{
while(first!=last)
{
if(*first==x)
return 1;
first++;last++;
}
return 0;
}
void main()
{
vector<int> vec;
int ival;
while(cin >> ival)
{
if(ival==(int)('\n'))
break;
vec.push_back(ival);
}
cout << "input the figure you want to find" << endl;
int x;
cin >> x;
vector<int>::iterator fir = vec.begin();
vector<int>::iterator las = vec.end();
bool fin;
fin=find(fir,las,x);
if(fin)
cout << "yes ,there is" << endl;
else
cout << "no,there isn't" << endl;
}

comeonbaby
