想*串的红杉树

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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

posted on 2020-03-10 17:41  现代新青年  阅读(170)  评论(0)    收藏  举报