练习5.17:假设有两个包含整数的vector对象,编写一段程序, 检验其中-一个vector
对象是否是另一个的前缀。为了实现这一目标,对于两个不等长的vector对象,只需
挑出长度较短的那个,把它的所有元素和另一个vector对象比较即可。例如,如果两
个vector对象的元素分别是0、1、1、2和0、1、1、2、3、5、8,则程序的返回
结果应该为真。
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int> vec1{1,2,3,4,5,6,7,8,9};
vector<int> vec2{1,2,3,4,5,6,7};
bool flag = true;
for(auto x:vec1)
cout<<x<<" ";
cout<<endl;
for(auto y:vec2)
cout<<y<<" ";
cout<<endl;
//判断vec1和vec2的大小,小的用来做比较大次数
if(vec1.size() > vec2.size()){
for(decltype(vec2.size()) index = 0;index < vec2.size();++index){
if(vec1[index] != vec2[index]){
flag = false;
break;
}
}
if(flag){
cout<<"vec2是vec1的前缀"<<endl;
}
}
else{
for(decltype(vec1.size()) index = 0;index < vec1.size();++index){
if(vec1[index] != vec2[index]){
flag = false;
break;
}
}
if(flag){
cout<<"vec1是vec2的前缀"<<endl;
}
}
return 0;
}
浙公网安备 33010602011771号