c++ primer 练习9.12
c++ primer 练习题9.12
做了一道练习题,但是在执行的时候出现了问题,想要输入迭代器的起始和结束位置,但是还没有输入程序就结束了。麻烦各位给看一下,谢谢啦。
------解决方案--------------------
vector<int>::iterator beg=n.begin();
之后 作插入数据操作的时候的,这个迭代器就已经失效了!
做了一道练习题,但是在执行的时候出现了问题,想要输入迭代器的起始和结束位置,但是还没有输入程序就结束了。麻烦各位给看一下,谢谢啦。
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int> n;
vector<int>::iterator beg=n.begin();
int m;
int test;
int b,e;
bool get_result;
bool test_number(vector<int>::iterator beg,vector<int>::iterator end,int test);
cout<<"Please enter some integers:"<<endl;
while(cin>>m)
n.push_back(m);
cin.clear();
cout<<"which number do you want test?"<<endl;
cin>>test;
cin.clear();
cout<<"which numbers do you want begin and end?"<<endl;
cin>>b>>e;
get_result=test_number(beg+b-1,beg+e,test);
if (get_result==1)
cout<<"you get the number in this vector."<<endl;
else
cout<<"the number you want is not in the vector."<<endl;
return 0;
}
bool test_number(vector<int>::iterator beg,vector<int>::iterator end,int test)
{
bool result=1;
for (vector<int>::iterator it=beg;it!=end;++it)
{
if (*it==test)
result=1;
else
result=0;
}
return result;
}
------解决方案--------------------
vector<int>::iterator beg=n.begin();
之后 作插入数据操作的时候的,这个迭代器就已经失效了!