给出两个int型的vector对象,编写程序判断一个对象是否是另一个对象的前缀。如果两个vector对象的长度不相同,假设较短的vector对象长度为n,则只对这两个对象的前面n个元素做比较。例如,对于(0,1,2)和(0,1,2,3,5,8)这两个vector,你的程序应该返回true
int main()
{ int ival;
vector<int> ivec1;
vector<int> ivec2;
cout<<"vector1:"<<endl;
cin>>ival;
while(ival!=32767)
{
ivec1.push_back(ival);
cin>>ival;
}
cout<<"vector2:"<<endl;
cin>>ival;
while(ival!=32767)
{
ivec2.push_back(ival);
cin>>ival;
}
vector<int>::size_type size1,size2;
size1=ivec1.size();
size2=ivec2.size();
bool result=true;
for(vector<int>::size_type id=0;id!=(size1<size2?size1:size2);++id)
{
if(ivec1[id]!=ivec2[id])
result=false;
break;
}
if(result)
if (size1<size2)
cout<< "ivec1 is the prefix of ivec2"<<endl;
else if(size1==size2)
cout<<"ivec1 is equal to ivec2"<<endl;
else
cout<<"ivec2 is the prefix of ivec1"<<endl;
else
cout<<"no vector is the prefix of the other"<<endl;
}