首先,这里有两个容器,所以输入两个容器的时候,中间要记得将流恢复为有效状态
代码如下:
vector<int> a,b;
int i;
cout<<"Enter elements for first vector:"<<endl;
while(cin>>i)
a.push_back(i);
cin.clear(); //
cout<<"Enter elements for second vector:"<<endl;
while(cin>>i)
b.push_back(i);
其次,是对两个容器的比较,在比较的过程中只要比较到较小的容器长度为止即可,
这部分代码为:
vector<int>::size_type ai=a.size();
vector<int>::size_type bi=b.size();
bool result=true;
for(vector<int>::size_type j=0; j!=(ai<bi?ai:bi); ++j)
if(a[j]!=b[j])
{
result=false;
break;
}
在这里要特别注意j的取值,j!=(ai<bi?ai:bi); 这里一定要加上括号;
最后,是输出部分的代码:
if(result)
{
if(ai<bi)
cout<<"The first vector is prefix of the second one."<<endl;
else
if(ai==bi)
cout<<"they are equal."<<endl;
else
cout<<"The second vector is prefix of the first one."<<endl;
}
else
cout<<"No vector is perfix the other one."<<endl;
return 0;