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; }